Azure devops Cypress与DevOps的集成

Azure devops Cypress与DevOps的集成,azure-devops,continuous-integration,ui-automation,cypress,cd,Azure Devops,Continuous Integration,Ui Automation,Cypress,Cd,我想要实现的目标: 我在Azure DevOps上有一个托管我的web应用程序的存储库。我使用Cypress为UI自动化编写了一个测试套件。我为我的测试用例创建了一个单独的存储库,以检查它们是否正常工作。我创建了一个具有以下内容的管道: trigger: - manual-tests pool: vmImage: 'ubuntu-latest' steps: - task: NodeTool@0 inputs: versionSpec: '10.x' displayName

我想要实现的目标:

我在Azure DevOps上有一个托管我的web应用程序的存储库。我使用Cypress为UI自动化编写了一个测试套件。我为我的测试用例创建了一个单独的存储库,以检查它们是否正常工作。我创建了一个具有以下内容的管道:

trigger:
- manual-tests
pool:
  vmImage: 'ubuntu-latest'

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '10.x'
  displayName: 'Install Node.js'

- script: |
    npm install
  displayName: 'npm install'

- task: Npm@1
  inputs:
    command: 'custom'
    customCommand: 'run test'
  continueOnError: true

- task: PublishTestResults@2
  inputs:
    testResultsFormat: 'JUnit'
    testResultsFiles: '**/test-output-*.xml'
    testRunTitle: 'My Test Cases'

我将触发器设置为存储UI自动化代码的存储库的分支。我想要的是,当推送web应用程序存储库的某个分支时,触发我的自动化脚本。有没有办法做到这一点?我们能否将测试用例文件存储在应用程序存储库中并给出测试脚本的路径?

似乎
UI自动化Repo
Web应用程序Repo
是两个独立的Repo

在推送web应用程序存储库的某个分支时触发我的自动化脚本。有没有办法做到这一点

“从其他回购协议触发管道”功能现在不可用

此功能仍在开发中。azure devops服务不久将提供对YAML管道的多存储库支持

请检查中的功能:“YAML管道的多存储库支持”。这项功能将在2020年7月底向所有人推出

解决方法:

你可以试着用这个

以下是步骤:

步骤1:使用web应用程序存储库创建一个管道,然后可以设置触发器分支

步骤2:在Yaml文件(UI Automation Repo)中添加管道触发器

例如:

resources:
  pipelines:
  - pipeline: Name   
    source: Pipeline name
    trigger: 
      branches:
      - releases/*
      - master
resources:
  repositories:
  - repository: MyAzureReposGitRepository
    type: git
    name: MyProject/WebapplicationRepo
...
steps:
- checkout: MyAzureReposGitRepository
在web应用程序存储库中进行更改时,将触发web应用程序的管道

运行管道后,将触发具有UI Automation repo的管道

我们能否将测试用例文件存储在应用程序存储库中,并给出测试脚本的路径

当然。你能做到

如果希望在管道中使用测试文件(UI Automation repo),可以在管道中添加

例如:

resources:
  pipelines:
  - pipeline: Name   
    source: Pipeline name
    trigger: 
      branches:
      - releases/*
      - master
resources:
  repositories:
  - repository: MyAzureReposGitRepository
    type: git
    name: MyProject/WebapplicationRepo
...
steps:
- checkout: MyAzureReposGitRepository
注意:回购将签出到代理源文件夹


希望这有帮助。

Hi@Haris Bin Saif。如果答案能给你一些帮助,请随时告诉我。如果我对你的回购协议有一些误解,你可以纠正我。然后我将再次测试它并提供一些帮助。谢谢。嗨@KevinLu MSFT!答案非常透彻,解释得很好。我会尝试一下,如果我遇到任何问题,或者这很好,我会告诉你。再次感谢您的回答Hey@KevinLu MSFT感谢您如此详细的回答。我希望微软能在YAML文件中支持多个存储库。这会使我们的生活变得容易得多:但你的简短回答对我帮助很大。这个变通方法工作得非常好。谢谢你!别担心,这个功能很快就会出现。嗨@KevinLu MSFT,所以,我在这里遇到了另一个问题,我的一个管道在另一个项目中。所以我用“project:name\u of\u proj”让它工作。我在我的测试机构上测试了它,它正在工作。但当我在真正的组织上实现它时,它并没有触发其他管道。这是因为权限吗?有办法调试它吗?