如何在一个VS解决方案中运行NUnit测试之前启动控制台应用程序?

时间:2011-08-04 14:02:56

标签: c# .net nunit resharper

在VS2010中,您可以指定多个启动项目(右键单击“启动项目”区域中的解决方案和选择适当的选项)。

如果你点击F5就可以了,但是对于NUnit测试,我还没有找到一种在运行测试之前启动这些项目的方法。有办法吗?

约束:

  1. 我不想从dos运行控制台应用程序,因为我需要调试支持。

  2. 我不想打开单独的解决方案。我的理由是,解决方案和解决方案之间的摩擦切换更多一点。确保编辑符合正确的解决方案。 VS2010可以很好地检查文件何时发生变化,但是,只需更轻松地获得一个集成调试体验,其效果与点击F5时相同。

  3. 目前我正在使用NUnit和Resharper 6.

    希望在某处我可以找到一个选项。

    感谢您查看此内容。


    更新:

    目前看起来似乎是不受支持的情况。目前我正在考虑将测试作为控制台应用程序启动。可能我会手动创建一个测试或所有测试的方法。

    能够获得关于成功/失败的报告,即使在测试运行员之外运行也是很好的。回到手动执行此操作吗?

    解决方案

    Pedro在对解决方案帖子的评论中发布了这些链接:

    对于* C:\ Program Files(x86)\ NUnit 2.5.10 \ bin \ net-2.0 *中的这些文件:

    • nunit.exe.config

    • nunit-x86.exe.config(对我而言重要)

    我更改了这些设置:

    在< configuration>下添加:

        <startup>
          <supportedRuntime version="v4.0.30319" />
        </startup>
    

    并在&lt; runtime&gt;下添加:

        <loadFromRemoteSources enabled="true" />
    

3 个答案:

答案 0 :(得分:2)

在另一个问题中,我posted a solution只需按F5即可运行NUnit GUI。如果您随后将单元测试和控制台应用程序项目设置为运行,则应获得所需的结果。

答案 1 :(得分:1)

根据this page,NUnit有一个[TestFixtureSetUp]属性,在运行任何其他单元测试之前将运行一次。虽然我自己没有使用过NUnit,但我认为你应该能够在用这个属性标记的方法中启动任何必要的先决条件程序。由于代码的执行方式与其他代码一样,我认为它可以像任何其他代码块一样进行调试。

答案 2 :(得分:1)

由于您使用Resharper作为测试运行,我很好奇您是否尝试过这些方法。将解决方案的启动项目设置为所需的控制台应用程序,然后按F5。然后,右键单击您有兴趣运行的测试项目/文件,然后单击“运行单元测试”。

当解决方案处于运行状态时,看起来Resharper隐藏了“调试单元测试”选项,但是如果您希望调试控制台应用程序方面的事情,那么可能为您工作(在这一点上完全没有经过考验的理论)。我会假设你使用这种方法调试测试方面是不合时宜的。

当然,这与Resharper的测试运行器相关联,如果您希望在持续集成构建系统上或通过NUnit GUI /控制台执行此操作,则此方法甚至无法帮助您。