Я хочу использовать обозреватель тестов Visual Studio для запуска моих тестов Google. Когда я создаю консольный проект, добавляю проект Google Test по умолчанию и создаю решение, он находит тесты, как и предполагалось.
![Default tests running](https://i.stack.imgur.com/t4l60.png)
Теперь я хочу создать свой собственный класс, где все настроено в заголовочном файле.
class foo
{
public:
foo() : the_count(0) {}
~foo() = default;
void count_plus() { the_count++; };
int get_count() { return the_count; };
private:
int the_count;
};
Затем я изменяю свой test.cpp
файл (файл по умолчанию, созданный в проекте Visual Studio для Google Test), чтобы использовать мой новый класс.
#include "pch.h"
#include <iostream>
#include "..\ConsoleApplication2\foo.h"
class tester : public testing::Test {
public:
foo bar;
void SetUpTestSuite() {
std::cout << "Setup..\n";
}
void TearDownTestSuite() {
std::cout << "Teardown..\n";
}
};
TEST_F(tester, TestFixture1)
{
EXPECT_EQ(bar.get_count(), 0);
bar.count_plus();
EXPECT_EQ(bar.get_count(), 1);
}
Создание этого решения также автоматически обнаруживает тесты и успешно их запускает.
![Still working...](https://i.stack.imgur.com/5NEqI.png)
Теперь это становится интересным ... Когда я перемещаю свою реализацию foo
в .cpp
file.
foo.h
class foo
{
public:
foo();
~foo() = default;
void count_plus();
int get_count();
private:
int the_count;
};
foo. cpp
#include "foo.h"
foo::foo()
{
the_count = 0;
}
void
foo::count_plus()
{
the_count++;
}
int
foo::get_count()
{
return the_count;
}
А затем я создаю решение, и вначале я получаю сообщение об ошибке компоновщика с жалобами на неразрешенные внешние данные.
![Unresolved externals](https://i.stack.imgur.com/EYIbV.png)
Однако, если я изменю настройки компоновщика тестового проекта, чтобы они указывали на другой проект, например:
Properties -> Linker -> Input -> Additional Dependencies -> add $(SolutionDir)ConsoleApplication2\$(IntDir)*.obj
который я получил от этого ответа, я могу успешно построить проект.
Однако после того, как я закончу sh сборку проекта, я больше не могу видеть или запускать свои тесты.
![enter image description here](https://i.stack.imgur.com/oEdYC.png)
Я что-то здесь не так делаю? Или Visual Studio просто сломан?