首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在将任务拆分为单独的作业后,没有发现测试。

在将任务拆分为单独的作业后,没有发现测试。
EN

Stack Overflow用户
提问于 2021-05-17 09:22:59
回答 1查看 296关注 0票数 0

我正试图重构我的构建管道,方法是将一些任务拆分到单独的作业中,以提高可扩展性。

下面的功能非常好,测试可以在没有问题的情况下找到并运行。

代码语言:javascript
复制
stages:
  - stage: build_test_publish
    displayName: Build
    pool:
      vmImage: "windows-latest"
    variables:
      solution: "**/SolutionName.sln"
      buildPlatform: "Any CPU"
      buildConfiguration: "Release"
    jobs:
      - job: build_publish_artifacts
        displayName: "Build, test and publish artifacts"
        steps:
          - task: NuGetToolInstaller@1
          - task: NuGetCommand@2
            inputs:
              command: "restore"
              restoreSolution: "**/*.sln"
              feedsToUse: "select"
              vstsFeed: "xxx"

          - task: VSBuild@1
            inputs:
              solution: "$(solution)"
              msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
              platform: "$(buildPlatform)"
              configuration: "$(buildConfiguration)"

          - task: VSTest@2
            inputs:
              platform: '$(buildPlatform)'
              configuration: '$(buildConfiguration)'
              runInParallel: false
              codeCoverageEnabled: true
              testAssemblyVer2: |
                 **\*test*.dll
                 !**\ProjectName.IntegrationTests.dll
                 !**\*TestAdapter.dll
                 !**\obj\**
              searchFolder: '$(System.DefaultWorkingDirectory)'

然而,在像下面这样将它分开之后,我得到了以下输出,其中找不到测试。

代码语言:javascript
复制
stages:
  - stage: build_test_publish
    displayName: Build, test and publish artifacts
    pool:
      vmImage: "windows-latest"
    variables:
      solution: "**/SolutionName.sln"
      buildPlatform: "Any CPU"
      buildConfiguration: "Release"
    jobs: 
      - job: build
        displayName: "Build"
        steps:
          - task: NuGetToolInstaller@1
          - task: NuGetCommand@2
            inputs:
              command: "restore"
              restoreSolution: "**/*.sln"
              feedsToUse: "select"
              vstsFeed: "xxx"
          - task: VSBuild@1
            inputs:
              solution: "$(solution)"
              msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
              platform: "$(buildPlatform)"
              configuration: "$(buildConfiguration)"
                

      - job: test
        displayName: Run unit tests
        dependsOn: build
        steps:
          - task: VSTest@2
            inputs:
              platform: '$(buildPlatform)'
              configuration: '$(buildConfiguration)'
              runInParallel: false
              codeCoverageEnabled: true
              testAssemblyVer2: |
                 **\*test*.dll
                 !**\ProjectName.IntegrationTests.dll
                 !**\*TestAdapter.dll
                 !**\obj\**
              searchFolder: '$(System.DefaultWorkingDirectory)'
代码语言:javascript
复制
Starting: VSTest
==============================================================================
Task         : Visual Studio Test
Description  : Run unit and functional tests (Selenium, Appium, Coded UI test, etc.) using the Visual Studio Test (VsTest) runner. Test frameworks that have a Visual Studio test adapter such as MsTest, xUnit, NUnit, Chutzpah (for JavaScript tests using QUnit, Mocha and Jasmine), etc. can be run. Tests can be distributed on multiple agents using this task (version 2).
Version      : 2.170.1
Author       : Microsoft Corporation
Help         : https://learn.microsoft.com/azure/devops/pipelines/tasks/test/vstest
==============================================================================
SystemVssConnection exists true
SystemVssConnection exists true
Running tests using vstest.console.exe runner.
======================================================
Test selector : Test assemblies
Test filter criteria : null
Search folder : D:\a\1\s
Action when minimum tests threshold not met : donothing
Minimum tests expected to be run: 0
VisualStudio version selected for test execution : latest
Attempting to find vstest.console from a visual studio installation with version [16.0,17.0).
Run in parallel : false
Run in isolation : false
Path to custom adapters : null
Other console options : null
Code coverage enabled : true
Diagnostics enabled : false
SystemVssConnection exists true
Run the tests locally using vstest.console.exe
========================================================
Source filter: **\*test*.dll,!**\ProjectName.IntegrationTests.dll,!**\*TestAdapter.dll,!**\obj\**
##[warning]No test sources found matching the given filter '**\*test*.dll,!**\ProjectName.IntegrationTests.dll,!**\*TestAdapter.dll,!**\obj\**'
Finishing: VSTest

为什么会发生这种情况,我应该改变或重新思考什么?

**编辑似乎是因为每个作业都使用自己的代理来运行其作业中的任务。

https://learn.microsoft.com/en-us/azure/devops/pipelines/get-started/key-pipelines-concepts?view=azure-devops

我仍然想知道这样的事情是否可能,以便用不同的环境变量启动测试运行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-17 23:44:03

所产生的DLL

代码语言:javascript
复制
          - task: VSBuild@1
            inputs:
              solution: "$(solution)"
              msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
              platform: "$(buildPlatform)"
              configuration: "$(buildConfiguration)"

不在工作之间进行共享。在场景分割任务之后,您可以在不同的机器上运行VSBuild和VSTask。这样做没有多大意义--我的意思是把这两项任务分开。

但是,如果您仍然想要这样做,您需要发布工件并在下一个作业中下载它

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67567079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档