【问题标题】:Executing SpecFlow tests in VSTS Release phase using SpecRun使用 SpecRun 在 VSTS 发布阶段执行 SpecFlow 测试
【发布时间】:2018-09-30 22:26:07
【问题描述】:

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

团队按照the guidance from Tarun and Utkarsh 在构建中设置 SpecRun,但是当我们使用 Publish Artefact 任务打包所有测试程序集时,在 Release Agent 上运行时找不到它们。

【问题讨论】:

    标签: azure-devops specflow azure-pipelines azure-pipelines-release-pipeline


    【解决方案1】:

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

    此测试运行程序包不会复制到测试项目的输出目录。构建中的 VsTest 任务会自动从包目录中检测测试运行器,这就是它在构建阶段像魔术一样工作的原因。

    为了让它在 Release 中工作,我们找到了几个选项:

    1. ugly 使用发布工件选项并发布解决方案包文件夹。在发布阶段,将 VsTest 步骤指向另一个工件位置以找到测试适配器:

    2. 更好在发布阶段使用 nuget 安装 SpecRun.Runner nuget。这存在构建下载 SpecRun.Runner 包的更新或意外版本的风险。

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

    【讨论】:

      猜你喜欢
      • 2013-09-02
      • 2019-07-23
      • 1970-01-01
      • 1970-01-01
      • 2020-08-27
      • 2021-10-22
      • 1970-01-01
      • 2020-09-22
      • 1970-01-01
      相关资源
      最近更新 更多