如何从外部程序集运行测试

时间:2015-02-23 20:16:53

标签: c# .net inheritance testing mstest

这是我想要实现的目标。我通过nuget提供了一些代码,并希望发布包含测试的第二个nuget来验证服务是否正常工作/部署。这个测试nuget将包含所有核心测试,无需任何修改(除了通过配置文件)。

所以这里是汇编A

的基类
[TestClass]
public abstract class BaseTestClass
{
    [TestCleanup]
    public void TearDown()
    {
        // do some cleanup...
    }

    [TestMethod]
    public void BaseTest()
    {
        // base test code...
    }
}

现在,我想将汇编A 引用到另一个汇编B 中并执行以下操作:

[TestClass]
public class ChildTestClass : BaseTestClass
{ }

问题是,测试资源管理器没有看到 BaseTest 方法。它只会看到在子类本身中声明的测试方法。未正确发现基类中的任何测试方法。

我怎么能这样做?

仅供参考:当我做同样的事情但是在同一个装配/项目中时它工作得很好。我同时使用MSTest和ReSharper测试运行器。 MSTest没有显示任何内容,但ReSharper有时会显示基本测试,但从不运行它,即使我能够选择并运行特定的测试,它也将始终仅运行在子类中声明的测试。

1 个答案:

答案 0 :(得分:2)

讨厌成为坏消息的承担者,但只是让你做不到。

Visual Studio不支持此功能。有一个userVoice项目有希望在将来添加支持,但在此之前你无法以这种方式构建测试。

http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/6030736-support-test-inheritance-for-base-classes-in-diffe

FYI官方MS回复确认: https://connect.microsoft.com/VisualStudio/feedback/details/989781