【发布时间】:2019-06-10 18:09:40
【问题描述】:
Azure DevOps 能够跨 multiple agents in parallel 运行 Visual Studio 测试。我想利用这一点,但是当我更新构建管道以使用 Based on past running time of tests 策略跨多个代理运行时,每个代理都分配了至少一个 整个 测试程序集(即 TestSuite1.dll 、TestSuite2.dll 等)。这意味着我们每个独立的 MSTest TestClass'es 都有大量的并行化机会,因为我们的测试被设计为具有类级别的执行范围。
我们的 Azure DevOps 管道成功实现了每个基础测试程序集跨代理的并行化,但显然我们更喜欢在我们的测试程序集中对每个不同的测试进行切片,所以 实现跨代理拆分每个派生 TestClass 的最佳策略是什么(最好不重构我们的整个测试代码)?
注意事项:
我已经生成 xml 以“成功”将一个 TestClass 构建到它自己的 .dll 中,然后在 Visual Studio Test 任务中仅引用该 .dll,但是一旦实际发生了引用\重定向问题,就会出现大量程序集类开始执行超过[AssemblyInitialize] 代码。由于我拥有整个解决方案的构建输出,因此我可以访问为整个测试程序集运行的 csc 命令,但同样无法对其进行测试,我假设只是引用其中的配置参数对未来的变化很脆弱。另外,我认为除了Select tests using Test Assemblies 之外的任何东西执行Visual Studio Test 任务都不会受益于Based on past running time of tests 切片策略。
【问题讨论】:
标签: msbuild azure-devops msbuild-task csc