azure-devops - Azure Devops:如何在发布管道期间添加自动化集成测试
问题描述
我有一个分阶段发布管道,该管道部署到 Development,然后部署到 Staging。
我希望我的集成测试项目仅在部署到登台之前在发布管道期间运行。我怎么做?是否有特定的测试任务可以在暂存部署之前挂钩?像预部署任务之类的?
解决方案
为了在您的发布管道中运行集成测试。您应该在构建管道中发布的工件中包含您的测试项目或测试程序集 dll 文件。以便发布管道中的测试任务可以访问您的集成测试项目。
将您的测试文件包含在工件中。您可以在Build Pipeline中添加第二个发布构建工件 任务。指定要发布到测试文件位置的路径。前面的例子。
我添加了另一个发布构建工件任务来发布运行测试所需的所有测试文件。
然后我将“发布路径”字段指定到包含所有测试文件的文件夹。
构建管道完成后。您将看到 Test 文件夹被添加到构建工件并发布到 azure devops 管道服务器。
现在,您可以通过在发布管道中添加 VsTest 任务或其他测试任务来在发布管道中运行测试。发布管道会将您的工件下载到文件夹$(System.DefaultWorkingDirectory)
(例如 C:\agent_work\r1\a)。
对于上面的示例,您将在文件夹中找到测试文件,$(System.DefaultWorkingDirectory)\artifact_alias\Test
并在$(System.DefaultWorkingDirectory)\artifact_alias\drop
.
然后,您可以像@Kontekst 提到的那样,在部署阶段之前使用 vstest 任务创建一个新阶段,或者在部署任务之前在部署阶段的顶部添加 vstest 任务。
在上面的屏幕截图中,我在 Azure 部署任务之前添加了 Vstest 任务,并将Search 文件夹指向测试文件所在的 Test 文件夹。
更新:
您可以在下面屏幕截图所示的字段中找到 artifacts-alias。
主要思想是在构建管道中发布工件中的测试文件,然后在发布管道中添加测试任务以运行测试。
推荐阅读
- c++ - How can i get sentence instead of word? i want to search second string in first string by strstr in c++
- java - OOP:计算对象的平均值
- reactjs - Material UI withStyles in an NPM package causes errors when used through npm link
- pointers - How do I convert an vector of variable addresses to an vector of variables?
- laravel - Laravel Application | Only Safari is sometimes missing XSRF Cookie on Requests
- pandas - how to apply a function to each row of a pandas dataframe, where the input to the function is the elements in the row in the form of a list
- css - Display navbar ontop of react-window
- node.js - Handling large amounts of arbitrarily scheduled tasks in node
- android - @Composable invocations can only happen from the context of a @composable function
- google-dfp - Google DFP ad slot sizes and stats mismatch