我有EntityServiceBaseTestClass,它是通用的,它有通用测试。但是,只要我在特定测试域中继承该类,就不会运行测试。但是,如果我将继承的测试类放在与基础测试类相同的程序集中,它就可以工作。 Ho可以欺骗Visual Studio来运行基类测试,即使它在不同的程序集中。 例如:
**namespace bla bla...Domain.Tests**
[TestClass]
public class EntityServiceBaseTestClass<TDomainEntity, TKey> where TDomainEntity :
DomainEntityBase<TDomainEntity, TKey> where TKey :
IEquatable<TKey>
{
[TestMethod]
public void CanSaveAddressMustUpdate()
{
//do generic tests
}
}
**namespace bla bla...Domain.Customers.Tests**
{
[TestClass]
public class CustomerTests : EntityServiceBaseTestClass<Address, Guid>
{
some specific domain tests
}
}
如果文件不在同一个程序集中,则不会调用CanSaveAddressMustUpdate()
。
我在此处找到的限制解释msdn:
“测试类可以继承来自同一程序集中的另一个测试类的方法。这意味着您可以在基础测试类中创建测试方法,然后在派生测试类中使用这些方法”
答案 0 :(得分:1)
由于微软记录了限制,我猜你没有任何机会解决问题。
您可以做的是更改测试框架。使用Nunit,一切都像魅力一样(使用ReSharper Test Runner测试)。