C++ 如何在运行时在CTest中传递命令行参数?

C++ 如何在运行时在CTest中传递命令行参数?,c++,cmake,catch2,C++,Cmake,Catch2,我希望在运行Bambol或jenkins时,通过ctest将参数传递给Catch2测试,以便生成junit测试结果。所以我想做一些类似的事情: make test ARGS="-r junit -o test_results.xml" 这将把这些转发给我的测试: unittest -r junit -o test_results.xml 这样,当我运行maketests时,它只是正常运行测试,将结果打印到控制台 我知道可以在add_test()命令中添加参数,但我正在寻找

我希望在运行Bambol或jenkins时,通过ctest将参数传递给Catch2测试,以便生成junit测试结果。所以我想做一些类似的事情:

make test ARGS="-r junit -o test_results.xml"
这将把这些转发给我的测试:

unittest -r junit -o test_results.xml
这样,当我运行
maketests
时,它只是正常运行测试,将结果打印到控制台

我知道可以在add_test()命令中添加参数,但我正在寻找更动态的参数


我希望在现代CMake中有一种方法可以做到这一点。

链接到“类似问题”?为什么不设置一个环境变量并在CMake中读取它,将其写入
add_test()
(或
catch_discover_tests()
EXTRA_ARGS
)?