CruiseControl.Net:使用参数运行NUnit任务

时间:2014-11-10 10:59:49

标签: nunit cruisecontrol.net

除非使用/noshadow参数启动nunit runner,否则我的NUnit测试会失败。 但在CC.net中,似乎无法在<nunit>块中提供此参数。

我知道我总是可以回到通用<exec>块,但是真的没有办法配置<nunit>块吗?

1 个答案:

答案 0 :(得分:1)

我猜想如果没有记录这个开关/标志,那么你提到它就不可用了。

要记住这些自定义任务,通常它们只是友好包装器,最终成为命令行调用。

任务 - 作者只是让事情变得简单。他们承担了创建正确命令行的责任,并将其传递给原始的.exe。

现在,看起来有人确实解决了您感兴趣的命令行:

https://github.com/loresoft/msbuildtasks/blob/master/Source/MSBuild.Community.Tasks/NUnit.cs

请注意代码:

 if (DisableShadowCopy)
{
    builder.AppendSwitch(c+"noshadow");
}

所以我会看看你是否能够完成这项任务。

事实上,我几乎没有使用任何内置的CC.NET任务,除了源代码下载和启动msbuild.exe ......然后发布。我将这些难题留给了msbuild。

Aka,我提取源代码,其中包含一个MyBuild.proj文件。 然后我有cc.net执行“msbuild.exe MyBuild.proj” 然后我让cc.net做一些发布。

为什么?

如果我的大多数逻辑都在msbuild .proj文件中,那么如果我切换到另一个CI工具,那么转换就不那么痛苦了。事实上,我最近了解到我的一份旧工作去了TFS,因为我在msbuild中编写了大部分构建逻辑(而不是很多cc.net任务)....过渡到TFS是相当轻松的。如果我使用过cc.net任务......那么每一个都必须被翻译成相应的tfs任务....:&lt;

反正。回到你的问题。请记住......某人基本上(通过任务)通常只是编写一个很好的方法来连接事物,并为您执行命令行参数/语法糖。所以他们有时会错过一个标志,或者稍后会添加一个标志,但原始任务不会更新。

所以你要么自己修改源代码........:&lt;或者选择一个能保持最新状态的图书馆。

祝你好运。