C# 在Visual Studio中运行多个NUnit项目

C# 在Visual Studio中运行多个NUnit项目,c#,visual-studio,nunit,projects-and-solutions,setup-project,C#,Visual Studio,Nunit,Projects And Solutions,Setup Project,我有一个包含多个项目的解决方案,包括NUnit测试项目。因此,解决方案如下所示(使用泛型名称,这些不是实际名称): 我希望在Visual Studio中单击“开始调试”时,通过NUnit GUI或控制台应用程序运行所有NUnit测试 现在,我所做的是添加了一个名为TestRunner的新类库,并将其设置为启动项目(我已经读过,我真的不需要这样做,我可以右键单击项目并单击“调试>启动新实例”)。然后在调试页面上的项目属性中,我将“启动操作”设置为“启动外部程序”,并选择nunit-console.

我有一个包含多个项目的解决方案,包括NUnit测试项目。因此,解决方案如下所示(使用泛型名称,这些不是实际名称):

我希望在Visual Studio中单击“开始调试”时,通过NUnit GUI或控制台应用程序运行所有NUnit测试

现在,我所做的是添加了一个名为TestRunner的新类库,并将其设置为启动项目(我已经读过,我真的不需要这样做,我可以右键单击项目并单击“调试>启动新实例”)。然后在调试页面上的项目属性中,我将“启动操作”设置为“启动外部程序”,并选择nunit-console.exe(看起来nunit.exe GUI不支持多个程序集作为输入参数)。然后在“命令行参数”中输入每个项目的路径。像这样:

这似乎还可以,但我想知道是否有更好的方法来做到这一点(也许我不需要额外的项目,或者有更简单的方法从VisualStudio中运行多个NUnit测试项目)

如有任何改进建议,将不胜感激。
运行NUnit 2.5.9和Visual Studio 2008。

Visual Studio本身有各种测试运行程序扩展—我个人使用(商业版)和(以前是免费的,现在是商业版),尽管后者更像是一个连续测试工具,而不是“显式运行”工具。如果您使用的是Visual Studio non Express,那么您应该真正考虑运行集成到IDE中的测试——这比在应用程序之间切换要好得多


但是,如果您想运行NUnit GUI,只需设置一个包含所有测试项目的NUnit项目配置-您只需执行一次,然后就可以在运行测试时使用它。

Visual Studio本身有各种测试运行程序扩展-我个人使用(商业)和(以前是免费的,现在是商业化的),尽管后者更像是一个连续的测试工具,而不是一个“显式运行”工具。如果您使用的是Visual Studio non Express,您应该真正考虑运行集成到IDE中的测试——这比在应用程序之间切换要好得多


但是,如果您想运行NUnit GUI,只需设置一个NUnit项目配置,其中包括所有测试项目-您只需要执行一次,然后您就可以在运行测试时使用它。

我尝试将主项目添加到NUnit的GUI,但它没有选择测试。看起来我必须单独添加每个项目。+1用于提及ReSharper。他们有一个“从解决方案运行所有测试”选项,这很漂亮。他们还有一个GUI,用于选择要运行的测试。@SwDevMan81:不要添加“主项目”-添加解决方案。但是,即使不起作用,您也应该能够添加一次DLL,然后您就可以从Visual Studio、nunit控制台或nunit gui轻松运行所有测试。@JonSkeet:我只在nunit gui中看到“Project>add VS Project…”选项,该选项只允许选择csproj文件。通过添加所有DDLd从Visual Studio运行它们,是否意味着将外部程序设置为以nunit.exe运行并提供nunit测试项目(.nunit)作为输入文件?我想这可以用,让我来try@SwDevMan81:是的,这就是我的意思-很抱歉关于解决方案文件的误导性信息;我真的以为NUnit会使用这些…我尝试将主项目添加到NUnit的GUI,但它没有选择测试。看起来我必须单独添加每个项目。+1harper。他们有一个“从解决方案运行所有测试”选项,这很漂亮。他们还有一个GUI,用于选择要运行的测试。@SwDevMan81:不要添加“主项目”-添加解决方案。但是,即使不起作用,您也应该能够添加一次DLL,然后您就可以从Visual Studio、nunit控制台或nunit gui轻松运行所有测试。@JonSkeet:我只在nunit gui中看到“Project>add VS Project…”选项,该选项只允许选择csproj文件。通过添加所有DDLd从Visual Studio运行它们,您的意思是将外部程序设置为以nunit.exe运行,并提供nunit测试项目(.nunit)作为输入文件吗?我想这可以工作,让我来看看try@SwDevMan81:是的,这就是我的意思-很抱歉关于解决方案文件的误导性信息;我真的以为NUnit会使用这些。。。
+ Solution
  + Project1
  + Project1.Test
  + Project2
  + Project2.Test
  + Project3
  + Project3.Test
  ...