ОК, полагаю, я нашел подходящий рабочий процесс, чтобы тест Catch2 работал в Visual Studio 2019:
- Создание нового проекта с решением тестируемого проекта (PuT) . Это будет наш тестовый проект.
- Добавьте ссылку на PuT из тестового проекта .
- В тестовом проекте создайте исходный файл и поместите следующие строки в нем :
#define CATCH_CONFIG_MAIN
#include "path_to_catch2/catch.hpp"
Напишите несколько тестов . У вас может быть столько исходных файлов с тестами, сколько вам нужно, но помните, что только один из них должен иметь объявление
#define CATCH_CONFIG_MAIN
.
В свойствах конфигурации проекта тестирования установите следующие параметры :
- Линкер -> Общие -> Дополнительные каталоги библиотек - добавьте сюда путь к каталогу объектных файлов PuT.
- Линкер -> Ввод -> Дополнительно Зависимости - здесь указываются имена объектов PuT (не пути, а только имена файлов .OBJ!), Разделенные точкой с запятой, которые использовались в тестах. Например, если вы хотите протестировать некоторый код, объявленный в MyCode.h , укажите здесь MyCode.obj имя файла. Когда вы ссылаетесь на другие файлы заголовков из PuT, не забудьте обновить этот параметр.
Открыть Test Explorer .
Добавьте файл .runsettings с решением root в папку . Минимальная конфигурация выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<Catch2Adapter>
<FilenameFilter>^Test_</FilenameFilter>
</Catch2Adapter>
</RunSettings>
, где <FilenameFilter>
контролирует фильтр для имен файлов тестовых проектов. В этом конкретном примере тесты будут обнаружены только в проектах, имена которых начинаются с «Test _».
Выберите этот файл .runsettings в Тестировать -> Настроить параметры запуска -> Выбрать файл широкого набора настроек решения . Вы можете иметь несколько файлов .runsettings с различной конфигурацией, здесь вы можете переключать их в любой момент.
Перестройте решение , чтобы обнаружить тесты.
Теперь вы должны видеть ваши тесты в Test Explorer.
Некоторые полезные ссылки:
https://docs.microsoft.com/en-us/visualstudio/test/how-to-use-microsoft-test-framework-for-cpp?view=vs-2019
https://github.com/JohnnyHendriks/TestAdapter_Catch2/blob/master/Docs/Walkthrough.md