VC++ VS 2013,如何使用(测试)类 来自另一个项目?

VC++ VS 2013, how to use (test) classes from another project?

我有一个 C++ (VS 2013) 控制台应用程序,我想测试它(使用 Google 测试)。

我创建了一个单独的项目并添加了 gtest 包含路径等(例如使用本教程 http://www.bogotobogo.com/cplusplus/google_unit_test_gtest.php),像这样的简单测试工作正常:

TEST(MyTests, myTest1)
{
    EXPECT_EQ(2+2, 4);
}

但是如何从主项目中使用 类?如果我简单地添加项目目录以包含路径,那么我可以使用 "header-only" 代码,但是对于 类 在 .cpp 中实现,我得到 unresolved external symbol 错误。

有什么比将所有 类 移动到一个库以便能够测试它更好的方法吗?

将您的项目设为库。并使启动时几乎没有可执行文件。这解决了很多问题。有很多项目使用这种策略。其中之一是 Chromium。另一个例子是 Perl 语言解释器。您的项目库将很容易 link 进行测试。