Я использую doctest для тестов в моем проекте C ++.
Я хотел бы поместить тестовый код вместе с моими реализациями, как говорит библиотека, но я могуне могу понять, что делать с кодом реализации doctest.
У меня есть файл doctest.cpp
, который выглядит следующим образом:
#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
#include "doctest.h"
A main.cpp
, который выглядит следующим образом:
#include "thing.h"
int main(int argc, const char *argv[]) {
do_thing();
}
thing.h
не требует пояснений, но thing.cpp
выглядит так:
do_thing() {}
TEST_CASE("Test thing") {
CHECK(1 == 1);
}
CMake используется для создания двух исполняемых файлов: исполняемого файла Tests
иMain
исполняемый файл.
Если я не включу doctest.cpp
в исходные тексты моего проекта для Main
, я получу неопределенные ссылочные ошибки, потому что не удается найти определение для всего материала тестирования в doctest.
Однако, если я включу его, я получу ошибки, потому что в одной цели есть несколько main()
функций.
Я не могу найти информацию об этом в документации по doctest.
Как вы собираетесь обойти это?