【发布时间】:2011-08-25 12:52:50
【问题描述】:
在 MSTest 中创建通用基测试类并从它继承时,我无法运行所有继承类的测试。
BaseDependencyPropertyFactoryTest 位于 Whathecode.PresentationFramework.Tests 程序集中。它是通用基类。 (BaseDependencyPropertyFactoryTest
两个程序集都有一个继承自这个基类的测试,称为 DependencyPropertyFactoryTest。继承的类所做的只是传递一个特定的类型参数。
[TestClass]
public class DependencyPropertyFactoryTest
: BaseDependencyPropertyFactoryTest<ASpecificClass>
{
}
似乎只有与基类位于同一程序集中的继承测试在运行。 Whathecode.PresentationFramework.Aspects.Tests 程序集中的继承测试似乎被完全忽略了。
我做错了什么?如果需要,我可以上传所有必需的源代码,但你需要 PostSharp 来组装方面。
作为测试,我尝试在切面程序集中向继承的测试类添加一个测试,它会调用基础测试类中的所有测试。
[TestMethod]
public void AllBaseTests()
{
ClrGetterSetterTest();
DependencyPropertyGetterSetterTest();
}
这给出了以下结果。奇怪的是,这个测试被执行了!目前,这可能至少可以作为运行它们的一种方式,但是我当然不想每次在基类中添加额外的测试时都编辑这个测试。
为什么会跳过这些基本测试,以及为什么会显示“已中止”?
【问题讨论】:
-
FWIW,MSTest 在很多方面都很糟糕,甚至都不好笑。不支持 AFAIR 继承的测试类...这只是众多问题之一。
-
@Mark:你有什么建议,我应该试试 NUnit 吗?在这个特殊案例之前,我对 MSTest 非常满意,所以如果你说 NUnit 肯定能够做到这一点,我会试一试。
-
刚刚在 Microsoft Connect 上找到 this relevant bug report。
-
我对 xUnit.net 很满意:blog.ploeh.dk/2010/04/26/… 而 Roy Osherove 似乎更喜欢 NUnit:osherove.com/blog/2010/3/5/…
标签: c# visual-studio unit-testing mstest resharper-5.1