MS TEst:当基类是通用的时,不执行方法

时间:2014-01-10 12:07:35

标签: c#-4.0 generics mstest base-class

不重复:Inherited test class from generic base is ignored in MSTest

在我的例子中,测试类位于相同的命名空间/程序集中。

当单元测试有很多共同点的类时,我想使用带有泛型参数的基本测试类。我把问题归结为以下问题,我的基本测试方法没有被执行,但只是在通用情况下。

非泛型:基本测试方法已执行

[TestClass]
public class DerivedTestClass : BaseUnitTest
{
    protected override string ReturnMeSomething(object obj)
    {
        return "test1" + obj.ToString();
    }

    [TestMethod]
    public void derived_test()
    {
    // This is executed
    }
}

[TestClass]
public abstract class BaseUnitTest
{
    [TestMethod]
    public void base_test()
    {
        // This is executed
    }
    protected abstract string ReturnMeSomething(object obj);
}

Generic:通用基类中的基本测试方法是 NOT EXECUTED

[TestClass]
public class DerivedTestClass : BaseUnitTest<string>
{
    protected override string ReturnMeSomething(string s)
    {
        return "test1" + s;
    }

    [TestMethod]
    public void derived_test()
    {
        // This is executed
    }
}

[TestClass]
public abstract class BaseUnitTest<T>
{
    [TestMethod]
    public void base_test()
    {
        // This is NOT executed
    }
    protected abstract string ReturnMeSomething(T t);
}

有谁可以告诉我这个的原因?

1 个答案:

答案 0 :(得分:0)

几天后,这突然起作用(!!)。如果有人经历过同样的奇怪行为,请在这里写评论。我建议任何人重新启动并清理+重建所有内容并重试。