我们有.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文件,请参阅以下答案