我有一个利用cmake、ctest和gtest的c++项目。
出于回归的目的,我的一个测试需要禁用,但我想手动运行它。
我使用gtest技巧将测试命名为DISABLED_test_name
来禁用它。
当我尝试运行它时,我会看到以下内容:
$ ctest -R aie2_210a_ddr_2kernel_ddr_gmio_bd_api.maize_xrt --verbose
UpdateCTestConfiguration from :/scratch/bryanloz/aie_controller_hax/test/build/DartConfiguration.tcl
Parse Config file:/scratch/bryanloz/aie_controller_hax/test/build/DartConfiguration.tcl
UpdateCTestConfiguration from :/scratch/bryanloz/aie_controller_hax/test/build/DartConfiguration.tcl
Parse Config file:/scratch/bryanloz/aie_controller_hax/test/build/DartConfiguration.tcl
Test project /scratch/bryanloz/aie_controller_hax/test/build
Constructing a list of tests
Done constructing a list of tests
Updating test list for fixtures
Added 0 tests to meet fixture requirements
Checking test dependency graph...
Checking test dependency graph end
test 8
Start 8: aie2_210a_ddr_2kernel_ddr_gmio_bd_api.maize_xrt
1/1 Test #8: aie2_210a_ddr_2kernel_ddr_gmio_bd_api.maize_xrt ...***Not Run (Disabled) 0.00 sec
No tests were found!!!
如何覆盖此行为?
您可以使用--gtest_also_run_disabled_tests
。此命令行标志强制运行所有DISABLED_测试。
请注意,如果您有多个禁用的测试,并且只想使用命令行启用其中一个,则可以将此标志与--gtest_filter
组合使用。
编辑CTest:
我不熟悉CTest
,但显然没有一种简单的方法可以在运行时在CTest中传递命令行参数。也许您可以使用此解决方法,或者找到可执行文件并将参数直接传递给它。查看此答案。
作为传递命令行参数的替代方法,可以将GTEST_ALSO_RUN_DISABLED_TESTS
环境变量设置为0以外的值。看看这个。
没有好的解决方案。当我需要在本地进行测试时,我只会重新构建测试可执行文件。我还可以直接从适当的工作目录中调用gtest可执行文件。
即使是建议的ENV在CTest场景中也不受尊重:
GTEST_ALSO_RUN_DISABLED_TESTS=1 ctest --verbose -R aie2_210a_ddr_2kernel_ddr_gmio_bd_api.maize_xrt
UpdateCTestConfiguration from :/scratch/bryanloz/aie_controller_hax/test/build/DartConfiguration.tcl
Parse Config file:/scratch/bryanloz/aie_controller_hax/test/build/DartConfiguration.tcl
UpdateCTestConfiguration from :/scratch/bryanloz/aie_controller_hax/test/build/DartConfiguration.tcl
Parse Config file:/scratch/bryanloz/aie_controller_hax/test/build/DartConfiguration.tcl
Test project /scratch/bryanloz/aie_controller_hax/test/build
Constructing a list of tests
Done constructing a list of tests
Updating test list for fixtures
Added 0 tests to meet fixture requirements
Checking test dependency graph...
Checking test dependency graph end
test 9
Start 9: aie2_210a_ddr_2kernel_ddr_gmio_bd_api.maize_xrt
1/1 Test #9: aie2_210a_ddr_2kernel_ddr_gmio_bd_api.maize_xrt ...***Not Run (Disabled) 0.00 sec
No tests were found!!!