是否可以在单个项目中进行MSpec和NUnit测试?

问题描述:

我有一个使用NUnit的单元测试项目。当我将mspec(machine.specifications)程序集添加到引用时,ReSharper和TestDriven.Net都停止运行NUnit测试,并仅运行mspec测试。是否可以在单个项目中进行MSpec和NUnit测试?

是否有方法或设置允许两个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内部的“Run Test(s)”会执行NUnit测试。

+0

目前,我无法让R#运行任何mspec测试:-(我将不得不围绕...... WRT TD.NET,它正在运行项目中的所有测试我看到了和你一样的行为:-( – 2010-05-01 19:21:10

+0

你是什么意思,由R#没有运行任何测试?你看到阴沟图标?测试是否添加到单元测试会话窗口中?单元测试图标测试执行后变成灰色而不是绿色? – 2010-05-02 21:35:07

确保您在ReSharper中打开MSpec。即使您“安装”了跑步者(手动或通过bat文件),默认情况下也不会打开。打开它在

ReSharper menu |选项... |工具|单元测试