Где поставить реализацию при использовании Doctest вместе с кодом - PullRequest
0 голосов
/ 18 марта 2019

Я использую 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.

Как вы собираетесь обойти это?

...