【发布时间】:2021-11-09 12:46:02
【问题描述】:
有没有办法用 CTest 以 junit xml 格式报告结果?
我找到了--output-junit 命令行开关,但运行ctest --output-junit testRes.xml 不会创建输出文件...
【问题讨论】:
标签: unit-testing junit cmake ctest
有没有办法用 CTest 以 junit xml 格式报告结果?
我找到了--output-junit 命令行开关,但运行ctest --output-junit testRes.xml 不会创建输出文件...
【问题讨论】:
标签: unit-testing junit cmake ctest
ctest --output-junit testRes.xml 不创建输出文件...
这是相对较新的功能,您只需将您的 CMake / CTest 更新到 v.3.21.4 或更高版本(参考https://cmake.org/cmake/help/v3.21/manual/ctest.1.html)
【讨论】:
同样的问题。我没有深入研究它。但我想有一个方便的解决方法:让 CMake 调用带有本机选项的测试可执行文件,旨在自行生成 JUnit 报告。
这种方法可以让您获得尽可能详细的 JUnit 报告。这样的报告将包含每个测试用例的单独日志记录,这些记录在称为可执行文件中,而不是一次完整的可执行文件。我假设在一般情况下 CMake 无法在任何详细级别解析每个测试框架的标准输出以收集任何数据以生成漂亮的 JUnit 报告。
继续上例,假设我们正在处理基于Boost.Test 的单元测试。然后只需通过以下方式将其添加到CMake项目中
add_test(
NAME ${test_name}
COMMAND ${boost_test_executable_file} --logger=JUNIT,message,${path_to_junit_log}
)
并获得 JUnit 报告。
【讨论】: