【发布时间】:2010-04-30 13:58:43
【问题描述】:
我有一个使用 NUnit 的单元测试项目。当我将 mspec (machine.specifications) 程序集添加到引用中时,ReSharper 和 TestDriven.Net 都停止运行 NUnit 测试并且只运行 mspec 测试。
有没有一种方法或设置允许 NUnit 和 mspec 测试共存并使用 R# 和 TD.Net 测试运行器在同一个项目中运行?
【问题讨论】:
我有一个使用 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 菜单 |选项... |工具 |单元测试
【讨论】: