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

8
在最新版本的Atlassian Bamboo中,我使用NUnit 2中的NUnit Runner,但在升级到NUnit 3后,它不再起作用了。似乎NUnit 3中的命令行发生了变化。是否有人知道如何使NUnit 3在Atlassian Bamboo中工作?或者NUnit开发人员能否考虑为这个破坏性的变化提供向后兼容性?
我收到以下错误信息:
“Invalid argument: -xml=TestResults-Rev_02f5436a0a70cd539bd3b77218fb48cbe3262954-Build_12.xml”

尝试使用我在这里描述的变体:http://stackoverflow.com/questions/40087902/bamboo-nunit-parser-task-incorrectly-parses-the-results-from-nunit3-console-exe - Tatiana
4个回答

8

最简单的解决方案是创建一个批处理文件,将 -xml 参数替换为 --result。

在 Nunit runner 目录中创建一个批处理文件(默认为 C:\Program Files (x86)\NUnit.org\nunit-console),并将以下行复制到其中。

@echo off 
SET "var=%*"
CALL SET var=%%var:-xml=--result%%
nunit3-console.exe %var%;format=nunit2

然后使用.bat文件地址作为Nunit运行器可执行文件的路径。


我遇到了一个错误,提示nunit3-console.exe不是一个可识别的命令 @Bashir - Ajay Bhasy
1
抱歉回答晚了,如果你已经安装了 Unit Runner 3,你应该在安装文件夹中(默认为 C:\Program Files (x86)\NUnit.org\nunit-console)找到 nunit3-console.exe。你还应该把 bat 文件放在同一个文件夹中,这样 bat 文件就能找到 nunit3-console.exe。另外,你也可以尝试使用完整路径来使用 nunit3-console.exe。 - Bashir
如果路径中包含空格,请在命令周围加上引号。最后的语句看起来像这样: "%~dp0nunit3-console.exe" %var%;format=nunit2 - Thomas D

1
希望Atlassian团队很快更新Bamboo以支持NUnit 3。我建议向他们提交请求。如果他们有任何问题,NUnit团队将很乐意帮助他们。
NUnit不支持向后兼容的命令行,但是您可以通过修改测试执行任务来使Bamboo正常工作。
我没有使用过Bamboo,但在AppVeyor上,我们不得不禁用自动测试检测和运行,然后不使用内置的NUnit任务,而是直接执行新的nunit3-console,传入测试程序集。
如果Bamboo解析并显示测试结果,则可以指示NUnit 3生成版本2格式的XML命令--result=TestResults.xml;format=nunit2

1

另外,提醒一下,-xml选项已经被弃用了3年!

我假设竹子根据用户提供的设置为NUnit生成命令行选项。由于NUnit 3.0与v2系列相比变化如此之大,开发人员可能希望将其视为全新的框架。实际上,NUnit 3.0引擎确实这样做,将NUnit V2视为“外来”框架,并使用特殊驱动程序运行其测试。


0

您遇到了这个问题,因为 nunit-3 不再使用 -xml 标志,而是被 --result 替换。Bamboo nunit runner 没有更新,仍然生成旧版 nunit 使用的标志。

创建一个批处理文件,其内容如下。不要使用 bamboo 中的 nunit 可执行文件,而是使用批处理文件。

@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%

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接