xUnit dotnet测试CLi将输出到NUnit XML,以便Bamboo可以读取结果。

10

我们正在启动一个新的 .net core 项目,并且正在设置 Bamboo 来构建我们的项目并运行测试,所以我的问题是:

有没有办法使用 xunit dotnet test CLi 测试运行器以 NUnit 的格式输出结果?

目前我们使用 "dotnet test -xml TestResults.xml" 运行我们的测试,这个方法很好用,但是我们无法在 Bamboo 中获取测试结果。

或者有没有其他替代方案适用于我们?


你需要自己判断是否可以让Bamboo直接支持xUnit.net,或者找到一种扩展它的方法,或将xUnit.net输出转换为NUnit格式。 - Lex Li
Bamboo不支持直接使用xUnit,但在.net 4.x中,您可以使用MSBuild使xUnit以NUnit格式输出,这样Bamboo就可以读取它了。我无法看到新的dotnet test CLI还具有此功能,除非我错过了,这是可能的,因为似乎并没有所有选项都已经发布(即-xml)。 - Brendan
4个回答

7
对于那些感兴趣的人,.NET Core SDK 2.0不再支持-xml选项, 但它支持--logger,可用于选择特定的输出格式,包括MSTest(.trx),这是Bamboo支持的。
示例调用: dotnet test --logger "trx;LogFileName=abc.trx" 注意:abc.trx可以是相对路径或绝对路径,包括省略号。

2

1

0

编辑

抱歉,我错过了你提到的 .net core。

虽然它没有记录在案,但 显然 你可以传递 -xml filename.xmldotnet test,这将输出 xUnit v1 XML。不幸的是,dotnet-test-xunit 不支持将该输出转换为 NUnit 格式,但是 xunit 正确地维护了一个 XSL 转换 来完成它。

原始答案

假设你正在使用 xunit.runner.console,你只需运行:

xunit.console.exe Assembly.dll  -nunit test-results.xml

然后使用Bamboo的NUnit解析器来处理结果。

1
很不幸,如果事情真的那么简单就好了。使用 .net core,我似乎无法在构建服务器上运行该命令,因为 xunit.console.exe 不存在,即使我已经在应用程序中安装了 nuget 包。看起来,在 .net core 中,所有的 nuget 包都被隐藏在某个地方,因此找不到任何程序集,甚至在 bin 文件夹中也找不到。 - Brendan
谢谢,但是根据我的原始帖子,我们已经在使用-xml选项,但它输出的是xUnit格式而不是NUnit格式。 - Brendan
@Brendan 好的,说得好,抱歉。看起来没有为netcore runner构建任何内容,但是您可以使用XSLT自行转换它(请参见更新的答案)。 - Richard Szalay

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