这是一个小示例,演示如何让 xUnit 获取 CTest 生成的 XML 测试结果文件。该示例由单个 C++ 源文件 main.cpp
#include <cstdlib>
int main() {
std::exit(-1);
}
以及随附的CMakeLists.txt:
cmake_minimum_required(VERSION 2.8)
project(JenkinsExample)
enable_testing()
add_executable(main main.cpp)
add_test(test1 main)
add_test(test2 main)
set_tests_properties(test2 PROPERTIES WILL_FAIL ON)
CMake 列表文件会生成一个可执行文件 main 并从两个 CMake 测试中运行该可执行文件,出于演示目的,一个总是会失败,另一个总是会成功。
使用 Jenkins,设置新作业并添加新的 cmakebuilder 构建步骤。将 CMake 源目录指向本地计算机上包含示例项目的文件夹。 CMake 构建目录应设置为build。这将使 Jenkins 在作业的工作区目录中创建一个 CMake 构建文件夹。最好设置 Clean Build 标志以使作业始终以干净状态开始。
然后,假设您正在运行 Unix,添加一个 Execute shell 作业步骤并在 Command 框中输入以下 shell 脚本:
cd build
/usr/local/bin/ctest --no-compress-output -T Test || /usr/bin/true
使用-T Test选项运行ctest将使CTest在构建文件夹内的子文件夹Testing中生成一个XML输出文件,可以通过帖子中的xUnit插件获取- 然后建立行动。如果某些测试失败,|| /usr/bin/true 是防止 Jenkins 过早中止构建(不运行 xUnit 插件)所必需的。
如果您使用的是 Windows,请改为设置类似的 Execute Windows batch command 作业步骤:
cd build
"C:\Program Files (x86)\CMake 2.8\bin\ctest.exe" --no-compress-output -T Test || verify > NUL
最后xUnit插件必须配置如下:
添加Publish xUnit test result report 构建后操作,然后使用插件的Add 按钮创建CTest-Version 测试结果报告。在CTest-Version (default) Pattern 中输入文件模式build/Testing/**/Test.xml。