我在Atlassian Bamboo中使用了NUnit Runner(最新版本)和NUnit 2,但在升级到NUnit 3后它已不再有效。 NUnit 3中的命令行似乎发生了变化。任何人都知道如何让NUnit 3在Atlassian Bamboo中运行?或者,NUnit开发人员是否可以考虑向后兼容这一突破性变化?
我收到以下错误:
无效参数: -xml = TestResults-Rev_02f5436a0a70cd539bd3b77218fb48cbe3262954-Build_12.xml
答案 0 :(得分:7)
最简单的解决方案是创建一个bat文件,将-xml参数替换为--result。
在Nunit runner目录中创建一个bat文件(默认情况下为C:\ Program Files(x86)\ NUnit.org \ nunit-console)并将其中的fallowing行复制到其中。
@echo off
SET "var=%*"
CALL SET var=%%var:-xml=--result%%
nunit3-console.exe %var%;format=nunit2
然后使用bat文件地址作为Nunit runner可执行路径。
答案 1 :(得分:1)
希望Atlassian团队能够尽快更新Bamboo以支持NUnit 3。我建议他们提交一份请求。如果他们有任何问题,NUnit团队将很乐意为他们提供帮助。
NUnit不支持向后兼容的命令行,但您现在可以通过修改测试执行任务来使Bamboo工作。
我没有使用过Bamboo,但是在AppVeyor上,我们必须禁用自动测试检测和运行,然后我们不是使用内置的NUnit任务,而是直接执行新的nunit3-console,传入测试程序集。 / p>
如果Bamboo解析并显示测试结果,您可以指示NUnit 3使用命令--result=TestResults.xml;format=nunit2
答案 2 :(得分:1)
另外,fyi,-xml选项已被弃用3年了!
我假设bamboo根据用户提供的设置为NUnit生成命令行选项。由于NUnit 3.0与v2系列有如此大的变化,开发人员可能希望将其视为一个全新的框架。事实上,NUnit 3.0引擎就是这样做的,将NUnit V2视为一个"外来的"框架并使用特殊的驱动程序来运行其测试。
答案 3 :(得分:0)
由于nunit-3
不再使用-xml
标记而被--result
取代,因此您收到该问题。竹楠跑步者没有受到伤害,仍然会产生旧的nunit使用的旗帜。
使用以下内容创建bat文件。不要在竹子中使用nunit可执行文件,而是使用bat文件。
@echo off
SET projectvar=%1
SET xmlvar=%2
SET executable=C:\Program Files (x86)\NUnit-3.4.1\bin\nunit3-console.exe
CALL SET xmlvar=%%xmlvar:-xml=--result%%
SET outputvar=%3;format=nunit2
SHIFT
SHIFT
SHIFT
SET remvar=%1
:loop
SHIFT
if [%1]==[] GOTO afterloop
SET remvar=%remvar% %1
GOTO loop
:afterloop
%executable% %projectvar% %xmlvar% %outputvar% %remvar%