在 Azure DevOps 中对拉取请求运行选择性测试用例

Posted

技术标签:

【中文标题】在 Azure DevOps 中对拉取请求运行选择性测试用例【英文标题】:Run selective test cases on Pull Request in Azure DevOps 【发布时间】:2020-12-18 23:05:49 【问题描述】:

我们在项目中设置了一个流程来创建拉取请求 (PR),同时将代码从功能分支合并到开发或主分支。 PR 不会完成,除非 & 直到 CI 成功并且应用程序中的所有测试用例都成功运行。然后 SonarQube 使用测试用例执行报告来发布代码覆盖率。 SonarQube 配置为仅发布新代码行的报告。

目前,这些测试用例(单元测试用例)大约需要 2-2.5 小时才能完成,从而有效地延迟了 PR 的完成。因此,我们正在考虑一些解决方法,我们可以只运行受影响的测试用例作为 PR CI 的一部分。这在 Azure DevOps 中可行吗?

【问题讨论】:

这能回答你的问题吗? VSTS Build - Choose which unit tests run depending on which files were modified in a pull request 嗨,这个问题有更新吗?请检查以下答案是否能解决您的问题。 【参考方案1】:

您正在寻找测试影响分析。请阅读the docs,但基本上:

TIA 通过自动测试选择执行增量验证。它将仅自动选择验证提交的代码所需的测试子集。对于进入 CI/CD 管道的给定代码提交,TIA 将仅选择并运行验证该提交所需的相关测试。因此,该测试运行将更快地完成,如果出现故障,您会更快地了解它,并且因为它都是由相关性确定的,所以分析也会更快。

您只需要在 Visual Studio 测试任务中启用它:

【讨论】:

以上是关于在 Azure DevOps 中对拉取请求运行选择性测试用例的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Azure DevOps 中自动触发构建拉取请求?

如何在 Azure DevOps 的拉取请求中显示构建状态

是否可以限制谁可以在 Azure DevOps 中完成拉取请求?

具有代码质量的 Azure Devops 拉取请求修饰

在 Azure Devops 上完成拉取请求后,如何自动“git tag -a”?

Azure DevOps 上的拉取请求以强制替换而不是合并