【问题标题】:Run test with CMD in Azure Devops在 Azure Devops 中使用 CMD 运行测试
【发布时间】:2021-06-16 15:51:09
【问题描述】:
  • 我需要在 Azure DevOps 中并行运行测试。我没有成功使用 runInParallel 任务中的属性:VSTest@2。在 Azure DevOps 中测试的执行时间比在我的机器上本地执行要长得多。
  • 我已尝试使用 task: CmdLine@2 来启动我的测试,它们并行运行,并且我在本地机器上执行的时间相同。在这里,我在发布测试结果时遇到了问题。如果有任何失败测试 - 测试发布不成功,如果所有测试都成功 - 测试发布成功。我想以任何形式发布测试结果。我错过了什么?

谢谢!

我的 yaml:

trigger:
 branches:
   exclude:
     - main
     - tests-stress
     - tests-regression

schedules:
  - cron: "00 04 * * *"
    displayName: Daily Automatic Test Run
    branches:
      include:
        - main
  
pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1
  displayName: 'Use NuGet 5.8.0'
  inputs:
    versionSpec: 5.8.0

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
    
- task: CmdLine@2
  inputs:
      script: 'dotnet test $(Build.Repository.LocalPath)/StressTests/bin/Release/netcoreapp3.1/StressTests.dll --configuration Release --no-build -s $(Build.Repository.LocalPath)/SettingsModelsWorkflows/AllRunSettings/Regression.runsettings --logger trx'
      failOnStderr: false

- task: PublishTestResults@2
  inputs:
    failTaskOnFailedTests: false
    testRunner: VSTest
    testResultsFiles: '**/*.trx'
    searchFolder: '$(Build.Repository.LocalPath)'

【问题讨论】:

    标签: azure-devops yaml qa test-runner


    【解决方案1】:

    我认为缺少condition 属性:

    - task: PublishTestResults@2
      inputs:
        failTaskOnFailedTests: false
        testRunner: VSTest
        testResultsFiles: '**/*.trx'
        searchFolder: '$(Build.Repository.LocalPath)'
        condition: succeededOrFailed()
    

    来自documentation:在此 YAML 中,PublishTestResults@2 将运行,即使上一步由于 succeededOrFailed() 而失败

    【讨论】:

    • 它有帮助。谢谢!
    猜你喜欢
    • 2023-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    • 1970-01-01
    • 2020-01-29
    相关资源
    最近更新 更多