有没有办法使用CTest以junit xml格式报告结果?我发现了
--output-junit
命令行开关,但运行ctest --output-junit testRes.xml
并不会创建输出文件...--output-junit
命令行开关,但运行ctest --output-junit testRes.xml
并不会创建输出文件...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报告。
ctest version 3.25.1
相同的问题。我正在调查中。如果我找到解决方案,我会在这里发布。 - Kevinctest --output-junit build/ctest-results.xml --test-dir build
将会创建一个文件./build/build/ctest-results.xml
,也就是说,使用选项--output-junit
指定的输出文件是相对于使用--test-dir
指定的目录而言的,而不是相对于当前目录。 - Kevinctest
非常贴心地不会给出任何未知参数
错误 - 它只是忽略未知的参数。这就是那种糟糕的工程,浪费了人们(比如我)数小时的生命。 :-/ - Timmmm