当我尝试运行测试时,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限制?
答案 0 :(得分:1)
显然,这是MSTest的Visual Studio测试运行器中的限制。问题是测试类与基础夹具位于不同的组件中。
只要基础测试夹具位于同一个组件中,我的测试就会显示出来。
编辑:不,NUnit没有解决它。我错了。
我能提供的唯一解决方案是不继承测试。您可以拥有测试助手,但每个测试本身必须为每个夹具输入。
edit2:This stack overflow duplicate建议您可以将基类文件链接到每个依赖测试程序集,该程序集可解决此问题。