【发布时间】:2015-02-23 20:16:52
【问题描述】:
这就是我想要实现的目标。我正在通过 nuget 提供一些代码,并且还希望发布第二个包含测试的 nuget,以验证服务是否正常工作/部署。此测试 nuget 将包含所有核心测试,无需任何修改(通过配置文件除外)。
这是 Assembly A 的基类:
[TestClass]
public abstract class BaseTestClass
{
[TestCleanup]
public void TearDown()
{
// do some cleanup...
}
[TestMethod]
public void BaseTest()
{
// base test code...
}
}
现在,我想将这个 Assembly A 引用到另一个 Assembly B 并执行以下操作:
[TestClass]
public class ChildTestClass : BaseTestClass
{ }
问题是,测试资源管理器看不到 BaseTest 方法。它只会看到在子类本身中声明的测试方法。未正确发现基类中的任何测试方法。
我该怎么做?
仅供参考:当我做同样的事情但都在同一个程序集/项目中时,它工作正常。我正在使用 MSTest 和 ReSharper 测试运行器。 MSTest 不显示任何内容,但 ReSharper 有时会显示基本测试但从不运行它,即使我能够选择并运行特定的测试,它也将始终只运行在子类中声明的测试。
【问题讨论】:
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
-
@JohnSaunders,感谢您的编辑。我不知道这个规则。
-
试用 NUnit 2.6.4。我刚刚将我的一个 TestBaseClass 移动到一个单独的 DLL 中,它继续工作。不是答案,至少不是您正在寻找的答案,但即使迁移有点费力,它仍然是一种选择。
标签: c# .net inheritance testing mstest