跨平台测试报告使用publish-unit-test-result-action在Linux、macOS和Windows上统一展示【免费下载链接】publish-unit-test-result-actionGitHub Action to publish unit test results on GitHub项目地址: https://gitcode.com/gh_mirrors/pu/publish-unit-test-result-action想要在GitHub Actions中统一展示跨平台测试结果吗publish-unit-test-result-action是一个强大的GitHub Action它能够自动分析测试结果文件并在GitHub上发布统一的测试报告。无论你的项目运行在Linux、macOS还是Windows上这个工具都能帮你轻松管理和展示测试结果。为什么需要跨平台测试报告工具在现代软件开发中跨平台兼容性变得越来越重要。许多项目需要在多个操作系统上运行测试以确保代码在不同环境下的稳定性。然而管理这些测试结果往往变得复杂结果分散不同平台的测试结果分散在各个地方格式不统一各种测试框架生成不同的报告格式查看困难开发者需要分别查看每个平台的测试状态对比不便难以快速比较不同平台的测试表现publish-unit-test-result-action解决了这些问题它支持多种测试框架的输出格式包括JUnit、NUnit、XUnit、TRX和JSON让你能够在GitHub上获得统一的测试报告视图。跨平台支持的测试框架 这个工具支持几乎所有主流编程语言的测试框架测试环境语言XML格式TRX格式JSON格式Dart/FlutterDart--✅JestJavaScript✅--MavenJava/Scala/Kotlin✅--MochaJavaScript✅-✅.NETC#/F#/VB.NET✅✅-pytestPython✅--sbtScala✅--无论你使用哪种编程语言或测试框架publish-unit-test-result-action都能处理你的测试结果。跨平台配置指南 ️Linux平台配置对于Ubuntu Linux或ARM Linux自托管runner使用Docker版本- name: Publish Test Results uses: EnricoMi/publish-unit-test-result-actionv2 if: always() with: files: | test-results/**/*.xml test-results/**/*.trx test-results/**/*.jsonmacOS平台配置对于macOS runner使用专门优化的版本- name: Publish Test Results uses: EnricoMi/publish-unit-test-result-action/macosv2 if: always() with: files: | test-results/**/*.xml test-results/**/*.trx test-results/**/*.jsonWindows平台配置对于Windows runner使用Windows专用版本- name: Publish Test Results uses: EnricoMi/publish-unit-test-result-action/windowsv2 if: always() with: files: | test-results\**\*.xml test-results\**\*.trx test-results\**\*.json测试结果展示位置 publish-unit-test-result-action将测试结果发布到GitHub的多个位置1. Pull Request评论每次测试运行后工具会在相关的Pull Request中发布评论显示测试结果的摘要信息。2. Commit和Pull Request检查在提交和Pull Request的检查部分会显示简短的测试摘要和详细结果的链接。3. 代码注释每个失败的测试都会在代码变更部分生成注释方便快速定位问题。4. GitHub Actions工作流摘要测试结果会添加到工作流运行的作业摘要页面。5. GitHub Actions检查摘要详细的测试结果会发布在相应提交的GitHub Actions检查摘要中。多平台矩阵测试策略 当你的测试需要在多个环境中运行时例如使用GitHub Actions的策略矩阵publish-unit-test-result-action可以统一处理所有测试结果jobs: build-and-test: name: Build and Test (Python ${{ matrix.python-version }}) runs-on: ubuntu-latest strategy: matrix: python-version: [3.6, 3.7, 3.8] steps: - name: PyTest run: python -m pytest test --junit-xml pytest.xml - name: Upload Test Results uses: actions/upload-artifactv4 with: name: Test Results (Python ${{ matrix.python-version }}) path: pytest.xml publish-test-results: name: Publish Tests Results needs: build-and-test runs-on: ubuntu-latest steps: - name: Download Artifacts uses: actions/download-artifactv4 with: path: artifacts - name: Publish Test Results uses: EnricoMi/publish-unit-test-result-actionv2 with: files: artifacts/**/*.xml核心功能特性 ✨智能结果对比工具会自动比较当前提交与之前提交的测试结果突出显示变化✅ 新增通过的测试❌ 新增失败的测试⚠️ 跳过的测试变化 测试数量变化统计灵活的配置选项通过丰富的配置选项你可以定制化测试报告的行为with: check_name: 跨平台测试结果 comment_mode: changes # 仅在测试结果有变化时评论 fail_on: test failures # 测试失败时标记为失败 check_run_annotations: all tests, skipped tests # 显示所有测试和跳过的测试 test_changes_limit: 10 # 限制显示的变化测试数量JSON输出支持除了在GitHub上展示你还可以获取结构化的JSON数据- name: Publish Test Results uses: EnricoMi/publish-unit-test-result-actionv2 id: test-results with: files: test-results/**/*.xml json_file: test-results.json - name: Process Results run: | echo 测试通过率: ${{ fromJSON( steps.test-results.outputs.json ).stats.tests_succ }}权限配置要求 在公开仓库中需要以下最小权限permissions: checks: write pull-requests: write在私有仓库中需要额外权限permissions: contents: read issues: read checks: write pull-requests: write最佳实践建议 1. 使用相对路径尽量使用相对路径指定测试结果文件这能确保在不同平台上的一致性files: | test-results/**/*.xml !test-results/temp/*.xml # 排除临时文件2. 处理大型测试套件对于包含大量测试的项目可以启用大文件支持with: large_files: true ignore_runs: true # 不收集测试运行信息提高性能3. 分支特定配置只在特定分支上显示详细的测试注释with: check_run_annotations_branch: main, develop4. 事件类型区分避免不同事件类型的测试结果互相覆盖with: check_name: 测试结果 (${{ github.event_name }}) comment_mode: ${{ github.event_name pull_request always || off }}故障排除技巧 常见问题1权限错误如果遇到Resource not accessible by integration错误请检查权限配置是否正确。常见问题2测试结果未显示确保使用了if: always()条件这样即使测试步骤失败结果也会被发布- name: Publish Test Results uses: EnricoMi/publish-unit-test-result-actionv2 if: always() # 始终运行即使测试失败常见问题3路径问题如果使用绝对路径建议使用非Docker版本uses: EnricoMi/publish-unit-test-result-action/linuxv2 # 或 uses: EnricoMi/publish-unit-test-result-action/macosv2 # 或 uses: EnricoMi/publish-unit-test-result-action/windowsv2总结 publish-unit-test-result-action是一个功能强大的跨平台测试报告工具它能够统一展示将Linux、macOS、Windows的测试结果统一展示支持广泛兼容多种测试框架和格式智能分析自动对比测试结果变化灵活配置提供丰富的自定义选项易于集成与GitHub Actions无缝集成无论你是个人开发者还是团队项目使用这个工具都能显著提升测试结果的可视化和管理效率。通过统一的测试报告你可以更快地发现和解决问题确保代码质量在不同平台上的一致性。开始使用publish-unit-test-result-action让你的跨平台测试管理变得更加简单高效【免费下载链接】publish-unit-test-result-actionGitHub Action to publish unit test results on GitHub项目地址: https://gitcode.com/gh_mirrors/pu/publish-unit-test-result-action创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考