Incredibuild for Unit Tests

Incredibuild for Unit Tests 利用本地或云端网络计算机的空闲 CPU 内核加快单元测试进程。现有解决方案需要在专用计算机上安装多个测试环境来运行装配测试(包括数据库、框架等),而 Incredibuild for Unit Test 提供了一种“零配置”方案。只需在构成 Incredibuild Environment 的每台计算机上安装 Incredibuild Agent 便能即刻提升测试能力,大幅加快测试进程,同时免去专用计算机的使用或繁琐的安装过程。有了 Incredibuild for Unit Test,您就能在每个 CI 进程上运行更多测试,实现更快的测试速度,从而提高产品质量,减少产品上市所需时间。

Incredibuild for Unit Test 支持所有主流测试框架,包括 NUnit、Google Test、XUnit、MSTest/VSTest 等。

现有解决方案

单元测试框架提供以下加速功能:

  • 单台计算机并行执行 – 部分框架支持进程的原生并行执行,以充分利用一台计算机的多个内核。例如,如果您有 120 个测试任务,在一台配备 4 CPU 内核的计算机上进行测试,则能够同时执行 30 个测试进程。但是并非所有测试框架均支持该功能,而且针对不同类型的测试也存在许多相应的问题。
  • 多台计算机并行执行 – 通常而言,单元测试框架不支持在多台计算机上进行加速。理论上可以在不同的计算机上运行不同的程序集 (DLL)。然而每台计算机都需要安装完整的测试环境才能执行测试和输出结果。

Incredibuild for Unit Test 工作原理

Incredibuild for Unit Test 可以在任何数量的本地和远程 CPU 内核上并行执行单元测试进程。该过程无需分配专用计算机,即使某台计算机正用于其他用途,Incredibuild 也可以充分利用该计算机上的空闲 CPU 周期。此外,也无需在每个参与机器上安装测试环境。

Incredibuild 将虚拟进程分配给 Incredibuild Agent 网络中的远程计算机,同时模拟 Initiator 计算机在远程 Helper 计算机上执行测试进程。这就意味着,尽管这些进程是在远程计算机上执行的,但该过程就像是发生在 Initiator 计算机上,从而能够为 CI 执行的测试以及开发人员执行的测试提速。由于 Incredibuild 将开发者计算机变成了数百颗内核,所以开发者在向 GIT 发送修复请求前可直接执行整个测试套件。使用 Incredibuild 可大幅降低 CI 中构建失败的概率,并省去 DevOps 和开发人员间不必要的迭代过程。

该方案由以下几个方面组成:

  • Initiator Agents – 安装测试框架和发起执行指令的计算机。

  • Helper Agents – 安装在远程计算机上 (可以只配置一个或按需配置)。用作 Helper 的计算机只需安装 Incredibuild Agent 即可。无需在只用作 Helper 的计算机上安装测试框架或配置其他测试环境资源。

  • Coordinator– 可安装在任何参与执行的计算机上,建议选择可用性高的计算机。此外,您还可以安装 Backup Coordinator。