GoogleTest с использованием cmake: разделение тестов на файлы .cpp и .h - PullRequest
0 голосов
/ 24 апреля 2019

Я не очень знаком с C ++, особенно с make и build.

В моем CMakeLists.txt у меня есть:

add_executable(example test_runner.cpp)
target_link_libraries(example gtest_main)

gtest_discover_tests(example)

Тогда в test_runner.cpp У меня есть:

#include <iostream>

#include "gtest/gtest.h"
#include "sample_tests.h"


int main(int argc, char **argv)
{
    testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

А sample_tests.h составляет:

#ifndef PROJECTS_SAMPLE_TESTS_H
#define PROJECTS_SAMPLE_TESTS_H


#endif //PROJECTS_SAMPLE_TESTS_H

И sample_tests.cpp - это:

#include <iostream>

#include "gtest/gtest.h"
#include "sample_tests.h"

TEST(sample_test_case, sample_test)
{
    EXPECT_EQ(1, 2);
}

Итак, для меня ясно, что проблема заключается в том, что test_runner.cpp импортирует sample_tests.h, но sample_tests.h не импортирует sample_tests.cpp. Однако, насколько я понимаю, файлы .h не могут импортировать файлы .cpp. Я знаю, что sample_tests.cpp должен реализовывать sample_tests.h, но я не могу понять, как на самом деле связать их вместе.

Это то, что мне нужно настроить в cmakelists.txt?

...