8

我在 Atlassian Bamboo(最新版本)中使用 NUnit Runner 和 NUnit 2,但升级到 NUnit 3 后它不再工作。NUnit 3 中的命令行似乎发生了一些变化。有人知道如何使 NUnit 3 在 Atlassian Bamboo 中工作吗?或者 NUnit 开发人员是否可以考虑为这一重大变化提供向后兼容性?

我收到以下错误:

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

4

4 回答 4

8

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

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

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

然后使用 bat 文件地址作为 Nunit runner 可执行路径。

于 2016-01-30T12:41:38.490 回答
1

另外,仅供参考, -xml 选项已弃用 3 年!

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

于 2015-12-02T22:23:35.253 回答
1

希望 Atlassian 团队能尽快更新 Bamboo 以支持 NUnit 3。我建议向他们提交请求。如果他们有任何问题,NUnit 团队将很乐意为他们提供帮助。

NUnit 将不支持向后兼容的命令行,但您可以通过修改测试执行任务来让 Bamboo 现在工作。

我没有使用 Bamboo,但是在 AppVeyor 上,我们必须禁用自动测试检测和运行,然后我们不使用内置的 NUnit 任务,而是直接执行新的 nunit3-console,传入测试程序集。

如果 Bamboo 解析并显示测试结果,您可以使用命令指示 NUnit 3 生成版本 2 格式的 XML--result=TestResults.xml;format=nunit2

于 2015-12-02T22:09:54.963 回答
0

您遇到了这个问题,因为nunit-3不再使用该-xml标志并被--result. 竹 nunit 跑步者未更新,仍会生成旧 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%
于 2017-04-11T04:09:46.633 回答