在不同的程序集中运行测试

时间:2015-07-14 11:03:03

标签: c# .net unit-testing testing xunit

当我尝试运行测试时,VS显示消息:“没有发现测试运行。”

这是我的代码:

public abstract class MyBaseClassTests
{
    protected IRepository Repository;

    [TestMethod]
    public void Test1 ()
    {
        var x = this.Repository.Get("id);
        Assert.AreEqual(x.Id, "id");

    }
}

[TestClass]
public class Implementation1Tests : MyBaseClassTests
{
    [TestInitialize]
    public void Setup()
    {
        this.Repository= new MemoryRepository();
    }
}    

[TestClass]
public class Implementation2Tests : MyBaseClassTests
{
    [TestInitialize]
    public void Setup()
    {
        this.Repository= new SqlRepository("connectionString...");
    }
}

所有实施都在不同的测试项目中。 (不同的大会)

有什么建议吗?或者是VS限制?

1 个答案:

答案 0 :(得分:1)

显然,这是MSTest的Visual Studio测试运行器中的限制。问题是测试类与基础夹具位于不同的组件中。

只要基础测试夹具位于同一个组件中,我的测试就会显示出来。

编辑:不,NUnit没有解决它。我错了。

我能提供的唯一解决方案是不继承测试。您可以拥有测试助手,但每个测试本身必须为每个夹具输入。

edit2:This stack overflow duplicate建议您可以将基类文件链接到每个依赖测试程序集,该程序集可解决此问题。