如何 运行 从外部程序集进行测试
How to run tests from an external assembly
这就是我想要实现的目标。我正在通过 nuget 提供一些代码,并且还想发布包含测试的第二个 nuget 以验证服务是否正确 working/deployed。此测试 nuget 将包含所有核心测试,无需任何修改(通过配置文件除外)。
所以这是 程序集 A 的基础 class:
[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 方法。它只会看到在子 class 本身中声明的测试方法。未正确发现基础 class 中的任何测试方法。
我该怎么做?
仅供参考:当我做同样的事情但都在同一个 Assembly/project 时,它工作正常。我同时使用 MSTest 和 ReSharper 测试 运行ner。 MSTest 不显示任何内容,但 ReSharper 有时会显示基本测试,但从不显示 运行 它,即使我能够 select 和 运行 一个特定的测试,它也总是 运行 仅在子 class.
中声明的测试
讨厌成为坏消息的传播者,但简单地说你不能。
Visual Studio 不支持这个。有一个 userVoice 项目希望在将来添加支持,但在那之前你不能以这种方式构建你的测试。
FYI 官方 MS 回复确认:
https://connect.microsoft.com/VisualStudio/feedback/details/989781
这就是我想要实现的目标。我正在通过 nuget 提供一些代码,并且还想发布包含测试的第二个 nuget 以验证服务是否正确 working/deployed。此测试 nuget 将包含所有核心测试,无需任何修改(通过配置文件除外)。
所以这是 程序集 A 的基础 class:
[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 方法。它只会看到在子 class 本身中声明的测试方法。未正确发现基础 class 中的任何测试方法。
我该怎么做?
仅供参考:当我做同样的事情但都在同一个 Assembly/project 时,它工作正常。我同时使用 MSTest 和 ReSharper 测试 运行ner。 MSTest 不显示任何内容,但 ReSharper 有时会显示基本测试,但从不显示 运行 它,即使我能够 select 和 运行 一个特定的测试,它也总是 运行 仅在子 class.
中声明的测试讨厌成为坏消息的传播者,但简单地说你不能。
Visual Studio 不支持这个。有一个 userVoice 项目希望在将来添加支持,但在那之前你不能以这种方式构建你的测试。
FYI 官方 MS 回复确认: https://connect.microsoft.com/VisualStudio/feedback/details/989781