Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure devops 使用SpecRun在VSTS发布阶段执行SpecFlow测试_Azure Devops_Specflow_Azure Pipelines_Azure Pipelines Release Pipeline - Fatal编程技术网

Azure devops 使用SpecRun在VSTS发布阶段执行SpecFlow测试

Azure devops 使用SpecRun在VSTS发布阶段执行SpecFlow测试,azure-devops,specflow,azure-pipelines,azure-pipelines-release-pipeline,Azure Devops,Specflow,Azure Pipelines,Azure Pipelines Release Pipeline,我们已经使用SpecFlow构建了许多测试,并且正在使用SpecRun在本地和构建代理上运行测试。我们希望将测试从构建中移除,并将它们粘贴到我们链接到构建的VSTS版本的第一个发布阶段 团队随后在构建中安装了SpecRun,但是当我们使用发布人工制品任务打包所有测试程序集时,在发布代理上运行时找不到它们。在构建代理上构建项目时,解决方案的NuGet引用会还原到packages文件夹中,这包括SpecRun.Runner包,其中包含用于发现和运行测试的Visual Studio测试适配器 此测试运

我们已经使用SpecFlow构建了许多测试,并且正在使用SpecRun在本地和构建代理上运行测试。我们希望将测试从构建中移除,并将它们粘贴到我们链接到构建的VSTS版本的第一个发布阶段


团队随后在构建中安装了SpecRun,但是当我们使用发布人工制品任务打包所有测试程序集时,在发布代理上运行时找不到它们。

在构建代理上构建项目时,解决方案的NuGet引用会还原到
packages
文件夹中,这包括SpecRun.Runner包,其中包含用于发现和运行测试的Visual Studio测试适配器

此测试运行程序包未复制到测试项目的输出目录。构建中的VsTest任务将自动从packages目录检测测试运行程序,这就是为什么它在构建阶段像魔术一样工作

为了使其在发行版中工作,我们找到了几个选项:

  • 丑陋使用发布人工制品选项并发布解决方案包文件夹。在发布阶段,将VsTest步骤指向其他人工制品位置,以查找测试适配器:

  • 更好使用nuget安装SpecRun.Runner nuget作为发布阶段的一部分。这可能会导致生成下载更新或意外版本的SpecRun.Runner包

  • best签入一个单独的packages.config,引用SpecRun.Runner项目及其依赖项,在构建过程中恢复它,并将其作为单独的人工制品附加到构建中。这将确保发布阶段能够使用相同版本的SpecRun.Runner,并且该版本存储在源代码管理中