googletest如何在链接期间保留测试代码?

时间:2015-05-29 13:04:03

标签: c++ linker googletest

我有一个小型测试项目,其布局如下:

testmain.cc
Foo\
  |--FooClass1_test.cc
  |--FooClass2_test.cc
Bar\
  |--BarClass1_test.cc
  |--BarClass2_test.cc

在* _test文件中,我按照

的顺序定义了测试
TEST(Foo, foo_func1_works)
{
    EXPECT_EQ(42, the_answer);
}

testmain.cc仅包含:

#include <gtest/gtest.h>

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

我可以看到TEST宏生成RUN_ALL_TESTS会知道的自注册类,但这段代码是如何链接的?什么都没有引用.cc文件中定义的测试,没有包含等等。为什么链接器会抛弃此代码?我正在使用MSVC 2010编译该项目。

0 个答案:

没有答案