Существует ли переменная Catch2, которая предоставляет имя текущего теста?

#c #catch2

Вопрос:

Я использую Catch2 для модульных тестов, и я хотел бы знать имя переменной C или среды, которая показывает имя текущего выполняемого теста.

Есть ли способ сделать это, или это дурной тон, когда код отладки теста печатает имя теста, в котором он выполняется? В идеале я хотел бы распечатать его с помощью макроса ЗАХВАТА.,

Комментарии:

1. Я сомневаюсь, что для этого будет переменная ENV, учитывая, что все тесты выполняются в рамках одного и того же процесса. В любом случае, для чего именно вам нужно название теста? Вы упоминаете CAPTURE макрос, но обычно результат теста уже виден для каждого теста-и поэтому обычно совершенно ясно, какой вывод связан с каким тестом.

2. Вы можете создавать и удалять переменные среды с getenv() помощью и putenv() . Я делаю это все время. это еще одна область действия глобальной переменной. Это действительно круто….

3. Что касается CAPTURE макроса … У меня есть обширные записи из некоторых моих тестов в файлы, и есть общие функции, которые вызываются несколькими тестами. Да, было бы лучше иметь модульные тесты низкого уровня, и я это делаю, но есть и более высокоуровневые, которые тоже нуждаются в тестировании…