为什么不能从其他程序集继承测试方法

5 unit-testing mstest

为什么不能从其他程序集继承测试来运行:

namespace TestProject.Base
{
    [TestClass]   
    public abstract class TestBaseClass
    {
        [TestMethod]
        public void BaseTest()
        {
            Assert.IsTrue(false);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

测试跑步者

namespace TestProject.UnitTest
{   
    [TestClass]
    public class UnitTest : TestBaseClass
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

当类在SAME程序集WTF中时,只能运行测试!

是否可以使用NUnit进行上述测试继承并且可以运行?

小智 2

不幸的是,这似乎是 MSUnit 框架的限制。在 MSDN 文档中,它明确指出测试可以从同一程序集中的另一个测试类继承方法(请参阅http://msdn.microsoft.com/en-us/library/ms182517.aspx)。

造成这种情况的原因可能是 MSUnit 发现测试的方式,到目前为止似乎没有解决方法(除了在项目中拥有测试文件的副本)。