这就是我想要实现的目标。我通过 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 有时会显示基本测试但从不运行它,即使我能够选择并运行特定测试,它也始终只运行在子类中声明的测试。
最佳答案
讨厌传递坏消息,但简单地说你不能。
Visual Studio 不支持此功能。有一个 userVoice 项目有望在将来添加支持,但在那之前您无法以这种方式构建测试。
仅供引用,MS 官方回复证实了这一点: https://connect.microsoft.com/VisualStudio/feedback/details/989781
关于c# - 如何从外部程序集运行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28682630/