GitHub 中的测试管理
不幸的是,GitHub 没有很好的方式来跟踪你的测试运行和代码覆盖率的变化,也不能帮助你检测或隔离不稳定的测试。你可以将测试作为工作流的一部分执行,并将结果反馈回来——但是对于报告,你必须依赖于你的测试工具。
一个与 GitHub 集成良好的好解决方案是 Testspace(https://www.testspace.com/)。它是一个 SaaS 服务,对于开源项目免费。设置非常简单——只需从市场安装扩展(https://github.com/marketplace/testspace-com),选择你想要的计划,并授予对你的仓库的访问权限。然后,向你的工作流中添加以下步骤:
- uses: testspace-com/setup-testspace@v1
with:
domain: ${{github.repository_owner}}
如果你的仓库是私有的,你必须在 Testspace 中创建一个令牌,并将其作为秘密添加到该步骤中:
token: ${{ secrets.TESTSPACE_TOKEN }}
接下来,你需要添加一个步骤,在执行完测试之后,将测试和代码覆盖率结果推送到 Testspace。你可以使用 glob 语法来指定动态文件夹中的文件。确保即使发生错误,也要执行此步骤(if: '!cancelled()'
):
- name: Push test results to Testspace
run: |
testspace **/TestResults.xml **/coverage.cobertura.xml
if: '!cancelled()'
Testspace 提供了可靠的不稳定测试检测功能。它有一个构建机器人,在新的结果到达时会发送通知。你可以通过回复电子邮件来对结果进行评论(见图 12.9):

Figure 1. 图 12.9 – 来自 Testspace 的构建结果通知
它会自动作为检查集成到你的拉取请求中(见图 12.10):

Figure 2. 图 12.10 – Testspace 集成到拉取请求检查中
Testspace 的 UI 看起来并不华丽,但它有非常丰富的报告和大量的功能(见图 12.11):

Figure 3. 图 12.11 – 你的测试指标的丰富报告
如果你还没有测试管理的解决方案,可以尝试 Testspace。如果你已经有了一个解决方案,那么将其集成到你的工作流中应该是简单直接的。