在gitlab CI上生成类似于Junit输出的xUnit测试输出



我们有.NET Core 3代码库,单元和集成测试在Gitlab CI上运行。问题是,当一个或多个单位/int。测试失败,没有显示任何具体的内容,您必须查看整个管道转储并搜索单个失败的测试。

正在查看https://docs.gitlab.com/ee/ci/unit_test_reports.html,Junit报告正是在解决这个问题。

咨询如何在Gitlab CI中捕获结构化xUnit测试输出?,我仍然没能找到合适的解决方案。主要问题是,有多个测试项目使用dotnet test命令执行:

gitlab.yaml文件的当前快照:

artifacts: 
when: always
reports:
junit: ./Test.xml   
script:
- for proj in $(dotnet sln MySolution.sln list | grep 'Test.csproj$'); do dotnet test --logger "junit;LogFilePath=Test.xml" $proj; done

现在有问题的是脚本部分,我们在其中迭代所有测试程序集,并为每个项目进行dotnet测试。

有没有一种方法可以从每个项目中生成一个单独的junit xml日志文件,并将其提供给中的junit测试报告

reports:
junit: ./Test.xml   

行?

您不必组合这些报告。artifacts:reports:junit键接受多个值,包括glob模式。

artifacts:
reports:
junit:
- "test.xml"
- "./tests/*.xml"

因此,一种解决方案是将所有XML输出文件都放在一个特定的目录中,并在.gitlab-ci.yml文件中使用与许多文件匹配的glob模式。

如果您真的想合并xUnitXML文件,请参阅以下答案

最新更新