Запуск юнит-тестов, исключая определенный тег в 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] - не проваливает тест, если какое-либо заданное утверждение не проходит (но все же сообщает об этом). Это может быть полезно, чтобы пометить незавершенную работу или известную проблему, которую вы не хотите исправлять немедленно, но все же хотите отслеживать в своих тестах.

Другие вопросы по тегам