C++ 测试支持与配置缓存不兼容。 |
本地生态系统中的测试有多种形式。
有不同的测试库和框架,以及许多不同类型的测试。所有这些都需要成为构建的一部分,无论它们是频繁执行还是不频繁执行。本章致力于解释 Gradle 如何处理构建之间和内部的不同需求,并重点介绍它如何与基于可执行文件的测试框架(例如Google Test)集成。
与在 Java 和 JVM 项目中进行测试相比,在 Gradle 中测试 C++ 项目相当有限。在本章中,我们将解释控制测试运行方式(测试执行)的方法。
但首先,我们了解 Gradle 中的本机测试的基础知识。
基础
所有 C++ 测试都围绕一个任务类型:RunTestExecutable。这将运行使用任何测试框架构建的单个测试可执行文件,并使用可执行文件的退出代码断言执行成功。不收集测试用例结果,也不生成任何报告。
为了进行操作,RunTestExecutable任务类型只需要一条信息:
-
在哪里可以找到构建的测试可执行文件(属性:RunTestExecutable.getExecutable())
当您使用C++ 单元测试插件时,您将自动获得以下内容:
-
用于配置测试组件及其变体的专用unitTest扩展
-
运行测试可执行文件的RunTestExecutable
run
类型的任务
测试插件适当地配置所需的信息。此外,他们还将run
任务附加到check
生命周期任务。它还创建testImplementation
依赖项配置。仅测试编译、链接和运行时所需的依赖项可以添加到此配置中。脚本unitTest
块的行为与application
orlibrary
脚本块类似。
RunTestExecutable任务有许多配置选项。我们将在本章的其余部分介绍其中的一些内容。
测试执行
Gradle 在单独的(“分叉”)进程中执行测试。
您可以通过RunTestExecutable任务上的多个属性来控制测试流程的启动方式,包括以下属性:
ignoreFailures
- 默认值:假-
如果此属性为
true
,Gradle 将在测试完成后继续项目的构建,即使其中一些测试失败。请注意,默认情况下,RunTestExecutable任务类型始终执行它检测到的每个测试,无论此设置如何。
有关所有可用配置选项的详细信息,请参阅RunTestExecutable 。