GitLab CI流水线Tests列显示0测试的问题排查与解决
GitLab CI无法统计xUnit测试结果(显示0测试)的解决方法
问题场景
我是GitLab CI新手,针对包含xUnit测试的.NET Core API应用搭建了流水线,分为Build(编译检查)和Test(展示测试结果)两个阶段。目前Build和Test阶段状态正常,Test job日志显示7个测试全部通过,且已上传TestResults.xml作为junit报告,但GitLab流水线的Tests列始终显示0测试,测试摘要统计也为0。
问题原因
xUnit默认生成的TestResults.xml结构不符合GitLab要求的JUnit标准报告格式,导致GitLab无法解析并统计测试用例数量。
解决步骤
给测试项目添加
JUnitTestLoggerNuGet包
可以通过NuGet包管理器安装,或者直接在测试项目的.csproj文件中添加引用:<PackageReference Include="JUnitTestLogger" Version="3.1.0" />在CI的Test阶段命令中加入
--logger junit参数
修改.gitlab-ci.yml中的Test任务配置,指定以JUnit格式生成测试报告,示例配置如下:stages: - build - test build: stage: build script: - dotnet build --configuration Release test: stage: test script: - dotnet test --configuration Release --logger "junit;LogFilePath=TestResults.xml" artifacts: reports: junit: TestResults.xml
效果验证
完成上述配置后,重新运行流水线,GitLab就能正确识别JUnit格式的测试报告,Tests列会显示实际的测试用例数量,测试摘要也能正常统计测试通过情况。
内容的提问来源于stack exchange,提问作者Athem
相关产品推荐
相关产品推荐

