MSTest 无法在子项中发现继承的 TestMethod Class

MSTest can't discover inherited TestMethod in a child Class


我正在使用 Visual Studio 2015,
我的问题是 MSTest 无法发现已经在 base class 中定义的 TestMethods,当我在 vs 中单击 "Run Tests" 时,只会执行在 child class 中定义的测试。

举例

[TestClass]
public class A 
{
  [TestMethod]
  public void Test1(){....}
}

[TestClass]
public class B : A
{
  [TestMethod]
  // MsTest only discover this method to execute!
  public void Test2(){....}
}

当我在 class 中单击 "Run Tests" 时,我希望这两种方法都被执行 B,如何解决这个问题? 谢谢

您可以将其标记为虚拟,然后覆盖它并在覆盖上重新提供 TestMethod 属性,并将方法调用传递给基本实现。

[TestClass]
public class A 
{
  [TestMethod]
  public virtual void Test1(){....}
}

[TestClass]
public class B : A
{
  [TestMethod]
  public override void Test1()
  {
    base.Test1();
  }

  [TestMethod]
  public void Test2(){....}
}