Запуск юнит-тестов, исключая определенный тег в Catch2
Могу ли я запустить тестовые случаи, основанные на "не совпадающих" конкретных тегах в Catch2?
TEST_CASE("Check the data validity","[Working]"){
REQUIRE(true);
}
TEST_CASE("Check the input","[InProgress]"){
REQUIRE(true);
}
TEST_CASE("Validate the response","[NotWorking]"){
REQUIRE(false);
}
Я хочу вызвать тестовые случаи, которые не попадают в [NotWorking]
тег, пока я не закончу реализацию этой функциональности.
2 ответа
Источник: https://github.com/catchorg/Catch2/blob/master/docs/command-line.md#specifying-which-tests-to-run
Примеры тестовых примеров:
thisTestOnly Matches the test case called, 'thisTestOnly'
"this test only" Matches the test case called, 'this test only'
these* Matches all cases starting with 'these'
exclude:notThis Matches all tests except, 'notThis'
~notThis Matches all tests except, 'notThis'
~*private* Matches all tests except those that contain 'private'
a* ~ab* abc Matches all tests that start with 'a', except those that
start with 'ab', except 'abc', which is included
Так что в вашем случае добавьте в командную строку:
exclude:NotWorking
или же
~NotWorking
Для вашего варианта использования, включающего тест, но ожидающего, что некоторые утверждения не пройдут, вам лучше использовать[!mayfail]
ярлык.
Смотрите здесь :
[!mayfail] - не проваливает тест, если какое-либо заданное утверждение не проходит (но все же сообщает об этом). Это может быть полезно, чтобы пометить незавершенную работу или известную проблему, которую вы не хотите исправлять немедленно, но все же хотите отслеживать в своих тестах.