如何快速执行和运行数百万个单元测试?

时间:2018-11-29 13:41:23

标签: c# visual-studio unit-testing mstest

您如何快速执行数百万个单元测试,即20到30分钟?

这是场景:

  • 您要发布某些硬件,并且可以进行2000个单元测试。
  • 您要发布新硬件,并且对此有1000项测试。

每个新硬件都将包含测试,但您还必须运行并执行每个以前的硬件,并且执行时间会越来越多。

在开发过程中,这可以通过使用TestCategory属性进行分类并仅运行所需的内容来解决。

但是,CI必须运行每个测试。随着数量的增加,执行时间会变慢,有时会超时。 .testrunconfig已经设置为执行parallelTestCount,但是随着时间的流逝,这不能永久解决问题。

您将如何解决?

1 个答案:

答案 0 :(得分:1)

对于Visual Studio 2017的每次更新,执行时间似乎都在变化。目前,我们有6000多个测试,其中15%到20%是单元测试,其余是集成测试。

瓶颈似乎是CI服务器本身,它在一台计算机上运行。 70%到80%的测试是异步的,分析表明没有阻塞的I / O操作。除了IO外,我们不使用数据库,而是使用缓存。

现在,我们正在迁移到Jenkins,并使用其并行测试执行器插件在多个节点而不是一台计算机上并行化测试。最初的测试表明执行6000多个测试的时间从10到15分钟不等,而旧的CI则需要2个小时或有时会停止。