【问题标题】:Call test methods in the base class in .NET在 .NET 的基类中调用测试方法
【发布时间】:2014-02-18 17:18:19
【问题描述】:

我有通用的 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 找到了对该限制的解释:

“一个测试类可以从同一个程序集中的另一个测试类继承方法。这意味着您可以在基测试类中创建测试方法,然后在派生测试类中使用这些方法”

【问题讨论】:

    标签: c# .net unit-testing inheritance mocking


    【解决方案1】:

    由于 Microsoft 记录了限制,我猜您将没有任何解决方法。

    你可以做的是改变你的测试框架。使用 Nunit,一切都像魅力一样运行(使用 ReSharper 测试运行器进行了测试)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-28
      • 1970-01-01
      • 1970-01-01
      • 2020-12-29
      相关资源
      最近更新 更多