除非使用/noshadow
参数启动nunit runner,否则我的NUnit测试会失败。
但在CC.net中,似乎无法在<nunit>
块中提供此参数。
我知道我总是可以回到通用<exec>
块,但是真的没有办法配置<nunit>
块吗?
答案 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;或者选择一个能保持最新状态的图书馆。
祝你好运。