在原生生态系统中进行测试有多种形式.

有不同的测试库和框架,以及许多不同类型的测试. 无论它们是频繁执行还是不频繁执行,所有这些都需要成为构建的一部分. 本章致力于说明Gradle如何处理内部版本之间以及内部内部的不同要求,并大量介绍了Gradle如何与基于可执行文件的测试框架(例如Google Test)集成.

在Java和JVM项目中进行测试相比,在Gradle中测试C ++项目非常有限. 在本章中,我们将说明控制测试运行方式的方法( 测试执行 ).

但是首先,我们看一下Gradle中本机测试的基础.

The basics

所有C ++测试都围绕一种任务类型运行: RunTestExecutable . 这将运行使用任何测试框架构建的单个测试可执行文件,并使用可执行文件的退出代码断言执行成功. 没有收集测试用例结果,也没有生成报告.

为了进行操作, RunTestExecutable任务类型仅需要一条信息:

使用C ++单元测试插件时,您将自动获得以下信息:

  • 专用的unitTest扩展,用于配置测试组件及其变体

  • run测试可执行文件的RunTestExecutable类型的run任务

测试插件会适当配置所需的信息. 此外,它们还将run任务附加到check生命周期任务. 它还创建了testImplementation依赖项配置. 只能将测试编译,链接和运行时所需的依赖项添加到此配置中. unitTest脚本块的行为类似于applicationlibrary脚本块.

RunTestExecutable任务具有许多配置选项. 在本章的其余部分中,我们将介绍其中的一些.

Test execution

Gradle在单独的("分叉")过程中执行测试.

您可以通过RunTestExecutable任务上的几个属性来控制如何启动测试过程,包括:

ignoreFailures - default: false

如果此属性为true ,则即使测试中的某些失败,Gradle也会在测试完成后继续进行项目的构建. 请注意,默认情况下, RunTestExecutable任务类型始终执行它检测到的每个测试,而不管此设置如何.

有关所有可用配置选项的详细信息,请参见RunTestExecutable .