CTest: Как пропустить другие тесты, если тест «предварительной проверки» не пройден? - PullRequest
0 голосов
/ 22 мая 2018

Я добавляю тесты в свой проект, и у всех тестов есть некоторые предварительные условия, поэтому я добавляю тест precheck , от которого зависят все остальные тесты.Если предварительная проверка не удалась, я бы хотел, чтобы другие тесты немедленно прекратились.

add_test(
    NAME precheck
    COMMAND false
)

add_test(
    NAME test-1
    COMMAND true
)
add_test(
    NAME test-2
    COMMAND true
)
set_tests_properties(
    test-1 test-2
    PROPERTIES
    DEPENDS precheck
)

Но похоже, что свойство DEPENDS влияет только на порядок тестов:

$ make test
Running tests...
Test project /root/ibvq/frkcrpg/b
    Start 1: precheck
1/3 Test #1: precheck .........................***Failed    0.00 sec
    Start 2: test-1
2/3 Test #2: test-1 ...........................   Passed    0.00 sec
    Start 3: test-2
3/3 Test #3: test-2 ...........................   Passed    0.00 sec

67% tests passed, 1 tests failed out of 3

Total Test time (real) =   0.02 sec

The following tests FAILED:
          1 - precheck (Failed)
Errors while running CTest
Makefile:83: recipe for target 'test' failed
make: *** [test] Error 8

Так как я могу заставить неудачную предварительную проверку остановить другие тесты?

1 Ответ

0 голосов
/ 22 мая 2018

Если вы используете CMake версии 3.7 или более поздней, вы можете использовать свойства test * .

Для более ранних версий CMake ваш тест precheck должен создать фиктивный файлв случае успеха, от которого зависят другие ваши тесты, путем установки свойства REQUIRED_FILES .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...