【发布时间】:2018-05-04 09:28:28
【问题描述】:
我有一个运行 MSTest 单元测试的 XAML 构建定义,执行所有这些测试需要很长时间。我在构建环境中设置了 4 个构建代理(每个具有 1 个核心的 VM)。我在 XAML 中使用 Microsoft.TeamFoundation.Build.Activities.RunAgileTestRunner 活动,该活动位于“在代理上运行”(Microsoft.TeamFoundation.Build.Workflow.Activities.AgentScope) 活动中。
目前,单元测试在其中一个代理上执行。我希望能够将单元测试分发给其他可用的代理。有没有办法通过 TFS 配置或更改构建定义来做到这一点。
作为一种解决方法,我可以将单元测试项目拆分为多个项目并在可用代理上分别运行它们,但是我将无法在一个地方看到构建摘要。
什么是最好的解决方案?
【问题讨论】:
-
您的测试运行需要多长时间?您可以将测试分为构建期间和构建后吗?
-
22 小时(我知道,我知道,这些更多的是集成测试而不是单元测试,但这是另一回事)。您能否提供更多关于如何将测试拆分为构建期间和构建后的信息?
-
在做任何其他事情之前,您应该努力削减这些/使它们运行得更快。之后,您应该考虑将它们移至部署后测试。
-
是的,这就是计划。但是,当第一个构建代理运行这些测试时,我的其他 3 个构建代理处于空闲状态。在构建代理之间拆分测试执行以加快执行,同时对底层测试的更改最少。
-
除非这不是这些代理的用途,尽管我理解使用所有可用“线程”的愿望。问题是,如果您希望能够根据测试失败/回滚,则需要将它们与它们关联的构建/部署内联。
标签: c# unit-testing tfs mstest