xUnit dotnet test CLi 输出到 NUnit xml 以便 Bamboo 可以读取结果

Posted

技术标签:

【中文标题】xUnit dotnet test CLi 输出到 NUnit xml 以便 Bamboo 可以读取结果【英文标题】:xUnit dotnet test CLi to output to NUnit xml so that Bamboo can read the results 【发布时间】:2017-01-25 08:02:06 【问题描述】:

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

有没有办法我们可以使用 xunit dotnet test CLi 测试运行器以 NUnit 格式输出?

目前我们有:“dotnet test -xml TestResults.xml”来运行我们的测试,效果很好,但我们无法在 Bamboo 中获得结果。

或者有没有人可以为我们提供替代方案?

【问题讨论】:

看能不能让 Bamboo 直接支持 xUnit.net,或者想办法扩展它,或者将 xUnit.net 输出转换为 NUnit 格式,这更多是你自己的责任。跨度> Bamboo 不直接支持 xUnit,在 .net 4.x 中使用 MSBuild 您可以让 xUnit 输出为竹子可以读取的 NUnit 格式。而且我看不到新的 dotnet 测试 CLi 不再具有此功能/但除非我错过了它,这是可能的,因为所有选项似乎尚未发布(即 -xml) 【参考方案1】:

对于那些感兴趣的人,.NET Core SDK 2.0 not longer supports the -xml option,但它确实支持--logger,可用于选择特定的输出格式,包括 Bamboo 支持的 MSTest (.trx)。

调用示例:

dotnet test --logger "trx;LogFileName=abc.trx"

注意:abc.trx 可以是相对路径或绝对路径,包括省略号。

【讨论】:

【参考方案2】:

我创建了一个用于解析竹子中的 xunit 结果的插件,并在 atlassian 市场上发布。

它应该支持 xunit 的 v1、v2 和 dotnet 测试输出。

https://marketplace.atlassian.com/plugins/com.wwwlicious.xunit.xunit/server/overview

希望这会有所帮助。

【讨论】:

【参考方案3】:

对于任何对此感兴趣并感兴趣的人。我在 xUnit 的 github 上发布了这个问题:https://github.com/xunit/xunit/issues/977,并提到了另一个要在这里发布的问题:https://github.com/dotnet/corefx/issues/5593

我还没有确认 NUint 输出格式确实会发布,但我想我还是会发布它。

【讨论】:

【参考方案4】:

编辑

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

虽然没有记录,apparently 您可以将-xml filename.xml 传递给dotnet test,这将输出 xUnit v1 XML。不幸的是,dotnet-test-xunit 不支持将该输出转换为 NUnit 格式,但 xunit 确实维护了一个 XSL transform 来做到这一点。

原答案

假设您使用的是 xunit.runner.console,您可以简单地运行:

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

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

【讨论】:

不幸的是,只有这么简单。使用 .net 核心,我似乎无法在构建服务器上运行该命令,因为 xunit.console.exe 不存在,即使我的应用程序中安装了 nuget 包。 .net core 中的所有 nuget 包似乎都隐藏在某个地方,因此即使在 bin 文件夹中也找不到任何程序集。 谢谢,但根据我原来的帖子,我们已经在使用 -xml 选项,但它以 xUnit 格式输出,没有 NUnit 格式。 @Brendan 好点,抱歉。看起来 netcore runner 没有内置任何东西,但是有一个 XSLT 可以用来自己转换它(请参阅更新的答案)。

以上是关于xUnit dotnet test CLi 输出到 NUnit xml 以便 Bamboo 可以读取结果的主要内容,如果未能解决你的问题,请参考以下文章

xUnit 无法输出到控制台 .NET

GitHub的dotnet core CI实践(.net core + xUnit + OpenCover + Appveyor + Coveralls.net)

在 mv 到其他目录之后,Dotnet CLI 无法构建?

如何在 dotnet cli 中使用“-optimize”?

dotnet cli与新vs2017 msbuild的关系

Net Core:在Xunit Test中对AppService、Repository等执行所有依赖注入