如何处理构建谷歌测试执行文件的自动工具

How to deal with autotools for building a google test exec file?

本文关键字:文件 执行 工具 测试 谷歌 何处理 处理 构建      更新时间:2023-10-16

我无法生成一个测试可执行文件,该文件包含我使用autotools进行的所有谷歌测试。

我们的开发项目相当大,包含几个模块。因此,我想要的是让每个模块创建一个测试lib/对象文件,然后将这些文件放在一起创建一个单独的测试exec文件(实际上是通过make test

这个Makefile.am编译,但不运行测试:(测试不是自动注册的,它使用0测试运行)

noinst_LTLIBRARIES = libtest2.la
libtest2_la_SOURCES = test2.cpp
libtest2_la_LIBADD = lib/libgtest.la
libtest2_la_CXXFLAGS = -I./include
TESTS = testall
check_PROGRAMS = testall
testall_SOURCES = test2.cpp
testall_CXXFLAGS = -I./include
testall_LDADD = libtest2.la lib/libgtest_main.la

当然,这个有效(但不是我想要的):

testall_SOURCES = test2.cpp
testall_CXXFLAGS = -I./include
testall_LDADD = lib/libgtest_main.la 

两者之间的真正区别是什么?如何使这些测试在我的项目中发挥作用?

Google Test的Primer wiki页面包含一个关于库中测试的特殊部分。它是为Visual C++用户编写的,但实际上也适用于GCC下的静态库。简而言之,您必须使用测试引用库,以防止链接器将它们抛出。