如何在自动工具C++中添加提升单元测试框架
How to add boost unit test framework in autotools C++
我有一个C++项目,我正在尝试弄清楚如何让自动化工具在构建过程中动态包含-lboost_unit_test_framework
标志。如果我添加它并使用它构建g++
手动编译,则在使用自动工具设置生成文件时,它只是缺少标志。
此外,当运行./configure
时,它会返回:./configure: line 3113: AX_BOOST_UNIT_TEST_FRAMEWORK: command not found
我 configure.ac:
AC_PREREQ([2.69])
AC_INIT([project], [0.1.0], [example@example.com])
AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR([src/main.cpp])
AC_CONFIG_HEADERS([config.h])
# Checks for programs.
AC_PROG_CXX
# Checks for libraries.
AX_BOOST_UNIT_TEST_FRAMEWORK
# Checks for header files.
# Checks for typedefs, structures, and compiler characteristics.
# Checks for library functions.
AC_CONFIG_FILES([Makefile
src/Makefile
test/Makefile])
AC_OUTPUT
我想通了,除非您从自动会议存档下载宏,否则宏是未定义的。我把它放在我的项目中project/m4
.
另外,您必须告诉configure.ac
在哪里可以找到它们:
...
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4]) # << Add this line
# Checks for programs.
AC_PROG_CXX
...
更新:
一旦我开始工作,为了让make check
执行测试,我必须:
将此添加到
project/test/Makefile.am
:check_PROGRAMS = program_tests program_tests_CPPFLAGS = -I../src/ ${BOOST_CPPFLAGS} program_tests_LDFLAGS = ${BOOST_LDFLAGS} program_wallet_tests_LDADD = ${BOOST_UNIT_TEST_FRAMEWORK_LIB} program_wallet_tests_SOURCES = runner.cpp main_tests.cpp
将此行添加到主
project/Makefile.am
:TESTS = test/program_tests
相关文章:
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- VC++本机单元测试,找不到调试符号
- 用于交叉编译和CMake的预处理器宏的单元测试
- C++ 用于单元测试的模板模板
- 提升 1.64 单元测试编译失败
- 单元测试欧拉到四元数实现失败
- 运行 C++ 单元测试时LNK2005链接错误
- 禁用自动捕获 Googletest 单元测试中的C++异常
- 有没有办法在不使用 #ifdef 的情况下不编译发布版本中的单元测试函数体?
- 使用 Google Test 对自定义断言函数进行单元测试
- 如何将我的 CMake 项目配置为运行所有单元测试?
- 在Qt C++单元测试中动态加载QQuickWindow而不是QQuickWidget
- MS 本机单元测试 - 断言::线程失败不起作用
- 如何在自动工具C++中添加提升单元测试框架
- 将单元测试添加到旧解决方案时出现链接错误
- 如何在VS 2017中添加C 的单元测试
- 将 XCTest 单元测试添加到现有应用不起作用
- 使用boost::filesystem添加头文件后,不再发现来自google测试的单元测试
- Boost单元测试:添加辅助方法或私有函数