【问题标题】:CTest custom target for python scripts with arguments带有参数的 python 脚本的 CTest 自定义目标
【发布时间】:2018-06-15 13:13:42
【问题描述】:

我希望能够通过 CTest 和以下命令运行一些 python 单元测试和其他测试:

make unit_tests

我尝试了以下组合,但它不起作用:

ADD_TEST(unit_test_1 ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/unit_test_1.py --verbose)

ADD_TEST(unit_test_2 ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/unit_test_2.py --verbose)

ADD_CUSTOM_TARGET(unit_tests COMMAND ${CMAKE_CTEST_COMMAND} 
                             DEPENDS unit_test_1 unit_test_2)

你知道怎么做吗?

【问题讨论】:

    标签: python cmake ctest


    【解决方案1】:

    这对我有用(我用一些虚拟语句替换了测试命令,但调整它以调用 python 应该是可行的):

    cmake_minimum_required(VERSION 3.11)
    
    enable_testing()
    
    add_test(unit_test_1 echo "Unit test 1")
    add_test(unit_test_2 echo "Unit test 2")
    
    add_custom_target(unit_tests COMMAND ${CMAKE_CTEST_COMMAND})
    

    无需向unit_tests 目标添加任何依赖项。默认情况下,ctest 运行所有测试。

    【讨论】:

    • 谢谢!但是,我不能使用您的解决方案,因为它会运行所有测试,而我只想运行一些测试(单元测试)。
    • 然后使用ctest -R unit_test_1 例如运行一项特定的测试。
    • 测试应该是自动管理的。您的解决方案需要手动管理它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    • 2023-02-06
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    相关资源
    最近更新 更多