我有一个使用 NUnit 的单元测试项目。当我将 mspec (machine.specifications) 程序集添加到引用中时,ReSharper 和 TestDriven.Net 都停止运行 NUnit 测试并且只运行 mspec 测试。
有没有一种方法或设置允许 NUnit 和 mspec 测试共存并使用 R# 和 TD.Net 测试运行器在同一个项目中运行?
我刚刚在 VS 2008 上使用 ReSharper 5.0 和 TestDriven.Net 3.0 RC2 以及以下代码对此进行了测试。
using Machine.Specifications;
using NUnit.Framework;
namespace ClassLibrary1
{
[TestFixture]
public class FooTests
{
[Test]
public void Bar()
{
Assert.IsTrue(true);
}
}
public class When_tests_are_run
{
It should_succeed = () => true.ShouldBeTrue();
}
}
我无法重现您使用 ReSharper 描述的行为。首先,ReSharper 检测两个测试类,如绿色和黄色的装订线标记所示。右键单击项目并选择“运行单元测试”成功运行这两个测试。通过装订线图标单独运行它们也可以按预期工作。
至于TestDriven.Net,我不确定它是否支持在一个项目中使用多个测试框架的场景。当我在项目上“运行测试”时,只执行 MSpec 上下文。但是,在 NUnit TestFixture 内部单击时“运行测试”会执行 NUnit 测试。
确保在 ReSharper 中打开 MSpec。即使您“安装”了运行程序(手动或通过 bat 文件),默认情况下它也不会打开。打开它在
ReSharper 菜单 | 选项... | 工具 | 单元测试