有没有办法用CTest以JUnit XML格式报告结果?我已经找到了--output-junit命令行开关,但运行ctest --output-junit testRes.xml不会创建输出文件...
--output-junit
ctest --output-junit testRes.xml
3zwjbxry1#
ctest --output-junit testRes.xml doas not create output file.这是一个相对较新的功能,您只需要将CMake / CTest更新到v.3.21.4或更高版本(参考https://cmake.org/cmake/help/v3.21/manual/ctest.1.html)
c86crjj02#
同样的问题。我没有深入研究它。但我想有一个方便的解决方法:让CMake调用带有本地选项的测试可执行文件,目的是自己生成JUnit报告。这种方法可以让你得到尽可能详细的JUnit报告。这样的报告将包含每个 * 测试用例 * 的单独日志记录,这些日志记录在被调用的可执行文件中,而不是一次完整的可执行文件。我的假设是,在一般情况下,CMake不能解析任何详细级别的每个测试框架的标准输出来收集数据,以生成漂亮的JUnit报告。下面来看这个例子,假设我们正在处理一个基于Boost.Test的单元测试。
Boost.Test
add_test( NAME ${test_name} COMMAND ${boost_test_executable_file} --logger=JUNIT,message,${path_to_junit_log} )
字符串并获取JUnit报告。
2条答案
按热度按时间3zwjbxry1#
ctest --output-junit testRes.xml doas not create output file.
这是一个相对较新的功能,您只需要将CMake / CTest更新到v.3.21.4或更高版本(参考https://cmake.org/cmake/help/v3.21/manual/ctest.1.html)
c86crjj02#
同样的问题。我没有深入研究它。但我想有一个方便的解决方法:让CMake调用带有本地选项的测试可执行文件,目的是自己生成JUnit报告。
这种方法可以让你得到尽可能详细的JUnit报告。这样的报告将包含每个 * 测试用例 * 的单独日志记录,这些日志记录在被调用的可执行文件中,而不是一次完整的可执行文件。我的假设是,在一般情况下,CMake不能解析任何详细级别的每个测试框架的标准输出来收集数据,以生成漂亮的JUnit报告。
下面来看这个例子,假设我们正在处理一个基于
Boost.Test
的单元测试。字符串
并获取JUnit报告。