【发布时间】:2018-09-30 02:29:34
【问题描述】:
我正在使用 cmake 构建 fortran 项目,但找不到打印到控制台 FRUIT 测试结果的解决方案,它们看起来像这样:
Test module initialized
. : successful assert, F : failed assert
7.00000000000000 -3.60000000000000 7.00000000000000
FFF
Start of FRUIT summary:
Some tests failed!
-- Failed assertion messages:
[_not_set_]:Expected [7.00000000000000], Got [1.00000000000000]
[_not_set_]:Expected [-3.60000000000000], Got [2.00000000000000]
[_not_set_]:Expected [7.00000000000000], Got [6.00000000000000]
-- end of failed assertion messages.
Total asserts : 3
Successful : 0
Failed : 3
Successful rate: 0.00%
Successful asserts / total asserts : [ 0 / 3 ]
Successful cases / total cases : [ 0 / 0 ]
-- end of FRUIT summary
我通过 make test 得到的输出如下:
make test
Running tests...
Test project /home/konrad/Desktop/fortran
Start 1: unit_tests
1/1 Test #1: unit_tests ....................... Passed 0.01 sec
100% tests passed, 0 tests failed out of 1
Total Test time (real) = 0.01 sec
由于通过 cmake 测试并不意味着通过 FRUIT 测试,所以我想在每次运行测试时打印 FRUIT 文件(只是为了让它工作)。我试过在测试命令的末尾添加打印命令(像这样少),添加
-P ${CMAKE_TEST_DIR}/unit_tests.txt
在 add_test 结束时,在构建命令之后构建自定义(我无法在 make test 之后运行,所以如果你知道如何做到这一点也可以解决它,似乎 make test 或 test 并不是真正的目标)
包含所有测试代码的 cmake 文件的最后一部分:
add_executable(task ${TASK_SOURCES})
add_executable(tests ${TEST_SOURCES})
enable_testing()
set(run_command "${CMAKE_BINARY_DIR}/tests")
set(UNIT_TEST_NAME "unit_tests.txt")
file(MAKE_DIRECTORY ${CMAKE_TEST_DIR})
add_test( NAME unit_tests
COMMAND sh -c
"rm -f ${CMAKE_TEST_DIR}/${UNIT_TEST_NAME} \
&& ${run_command} \
>> ${CMAKE_TEST_DIR}/${UNIT_TEST_NAME} \
&& less ${CMAKE_TEST_DIR}/${UNIT_TEST_NAME}"
)
【问题讨论】: