我有通用的 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 :
“测试类可以从同一程序集中的另一个测试类继承方法。这意味着您可以在基测试类中创建测试方法,然后在派生测试类中使用这些方法”
最佳答案
由于 Microsoft 记录了限制,我想您将没有任何解决方法。
你能做的就是改变你的测试框架。使用 Nunit,一切都像魅力一样工作(使用 ReSharper Test Runner 进行测试)。
关于c# - 在 .NET 中调用基类中的测试方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21860840/