#c #catch2
Вопрос:
Я использую Catch2 для модульных тестов, и я хотел бы знать имя переменной C или среды, которая показывает имя текущего выполняемого теста.
Есть ли способ сделать это, или это дурной тон, когда код отладки теста печатает имя теста, в котором он выполняется? В идеале я хотел бы распечатать его с помощью макроса ЗАХВАТА.,
Комментарии:
1. Я сомневаюсь, что для этого будет переменная ENV, учитывая, что все тесты выполняются в рамках одного и того же процесса. В любом случае, для чего именно вам нужно название теста? Вы упоминаете
CAPTURE
макрос, но обычно результат теста уже виден для каждого теста-и поэтому обычно совершенно ясно, какой вывод связан с каким тестом.2. Вы можете создавать и удалять переменные среды с
getenv()
помощью иputenv()
. Я делаю это все время. это еще одна область действия глобальной переменной. Это действительно круто….3. Что касается
CAPTURE
макроса … У меня есть обширные записи из некоторых моих тестов в файлы, и есть общие функции, которые вызываются несколькими тестами. Да, было бы лучше иметь модульные тесты низкого уровня, и я это делаю, но есть и более высокоуровневые, которые тоже нуждаются в тестировании…