如何使用NUnit 3在Atlassian Bamboo中运行NUnit Runner?

时间:2015-12-02 21:49:23

标签: unit-testing bamboo nunit-3.0 nunit-console

我在Atlassian Bamboo中使用了NUnit Runner(最新版本)和NUnit 2,但在升级到NUnit 3后它已不再有效。 NUnit 3中的命令行似乎发生了变化。任何人都知道如何让NUnit 3在Atlassian Bamboo中运行?或者,NUnit开发人员是否可以考虑向后兼容这一突破性变化?

我收到以下错误:

  

无效参数:   -xml = TestResults-Rev_02f5436a0a70cd539bd3b77218fb48cbe3262954-Build_12.xml

4 个答案:

答案 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格式的XML

答案 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%