Azure devops Azure Devops:如何在发布管道期间添加自动集成测试

Azure devops Azure Devops:如何在发布管道期间添加自动集成测试,azure-devops,azure-pipelines,azure-pipelines-release-pipeline,Azure Devops,Azure Pipelines,Azure Pipelines Release Pipeline,我有一个分阶段发布管道,部署到开发,然后部署到分阶段 我希望我的集成测试项目仅在部署到登台之前的发布管道期间运行。我该怎么做?在登台部署之前,是否有一个特定的测试任务可以挂接?像预部署任务之类的?我想您使用的是C单元测试 在阶段部署之前向阶段添加新的阶段集成测试 添加安装VSTest平台的任务。它将缓存在代理文件夹中 将适当的单元测试适配器NuGet包添加到测试项目中,以便VSTest平台能够在dll程序集中找到单元测试,例如,对于NUnit测试,它将是NUnit 3测试适配器 添加VSTest

我有一个分阶段发布管道,部署到开发,然后部署到分阶段


我希望我的集成测试项目仅在部署到登台之前的发布管道期间运行。我该怎么做?在登台部署之前,是否有一个特定的测试任务可以挂接?像预部署任务之类的?

我想您使用的是C单元测试

在阶段部署之前向阶段添加新的阶段集成测试

添加安装VSTest平台的任务。它将缓存在代理文件夹中

将适当的单元测试适配器NuGet包添加到测试项目中,以便VSTest平台能够在dll程序集中找到单元测试,例如,对于NUnit测试,它将是NUnit 3测试适配器

添加VSTest任务规范:

测试文件->例如***IntegrationTests.dll

b测试平台版本->由工具安装程序安装


VSTest任务返回的所有测试结果都将与Azure DevOps服务集成。

以便在发布管道中运行集成测试。您应该在构建管道中发布的工件中包含测试项目或测试程序集dll文件。这样,您的集成测试项目就可以被发布管道中的测试任务访问

将测试文件包括在工件中。您可以在构建管道中添加第二个发布构建工件任务。指定要发布到测试文件位置的路径。下面是一个例子

我添加了另一个发布构建工件任务来发布运行测试所需的所有测试文件

然后,我指定将字段发布到包含所有测试文件的文件夹的路径

在构建管道完成之后。您将看到测试文件夹被添加到构建工件并发布到azure devops管道服务器

现在,通过在发布管道中添加VsTest任务或其他测试任务,可以在发布管道中运行测试。发布管道将把您的工件下载到 文件夹$System.DefaultWorkingDirectoryeg。C:\agent\u work\r1\a

对于上面的示例,您将在文件夹$System.DefaultWorkingDirectory\artifact\u alias\test中找到测试文件,并在$System.DefaultWorkingDirectory\artifact\u alias\drop中找到要部署的工件

然后,您可以使用@Kontekst提到的部署阶段之前的vstest task创建一个新阶段,或者只在部署任务之前的部署阶段顶部添加vstest任务

在上面的屏幕截图中,我将Vstest任务添加到Azure部署任务之前,并将搜索文件夹指向测试文件所在的测试文件夹

更新:

您可以在下面的屏幕截图所示的字段中找到工件别名


其主要思想是在构建管道中的工件中发布测试文件,然后在发布管道中添加测试任务以运行测试。

我如何知道工件的别名?此$System.DefaultWorkingDirectory\artifact\u alias\Test路径需要它。我只是不知道在哪里可以找到别名。您好@TarasPelenio请参见上面的更新。您可以在发布管道编辑页面中找到工件别名。单击工件,Souce alias就是工件别名Fine,谢谢回答。如果我只指定$System.DefaultWorkingDirectory,它也应该工作吗?是否需要指定详细的搜索文件夹?