Azure Pipelines在运行测试之前单独构建所有项目



我们有一个应用程序,该应用程序有多个项目在各自的解决方案中隔离,每个项目在这些解决方案中都有自己的UnitTest和IntegrationTest项目。在我们本地托管的Azure DevOps应用程序上发生的情况是,以下代码强制Azure DevOps在运行测试之前在解决方案中构建每个项目。我想做的是在初始构建上按顺序运行所有测试,或者至少缩短构建时间,因为在构建服务器上,每个构建大约需要一分钟或两分钟,这是大部分时间。由于我们让XUnit在say Rider中运行测试,它可以在一分钟内处理多个项目的解决方案中的所有测试。

有没有办法缩短构建时间,或者这是最好的方法?

- task: DotNetCoreCLI@2
displayName: Unit Tests
inputs:
command: test
projects: '**/*UnitTest*/*.csproj'
arguments: '--configuration $(BuildConfiguration)'
# run integration tests
- task: DotNetCoreCLI@2
displayName: Integration Tests
inputs:
command: test
projects: '**/*IntegrationTest*/*.csproj'
arguments: '--configuration $(BuildConfiguration)'

在我们本地托管的azure devops应用程序上发生的事情是下面的代码将导致Azure Devops生成每个项目在运行测试之前在解决方案中。

对于此问题,可以添加--no-build参数以跳过测试运行时的项目生成。

  • --no-build

在运行测试项目之前不构建测试项目。这在文档的"选项"部分列出。

- task: DotNetCoreCLI@2
displayName: 'dotnet test'
inputs:
command: test
projects: '**/*UnitTest*/*.csproj'
arguments: '--configuration $(BuildConfiguration) --no-build'

这里有一个类似问题的案例,你可以参考一下

最新更新