编译的提升.测试测试更快
Compiling Boost.Test tests faster
我使用xcode (gcc)来编译我的boost测试套件,它需要太长时间。
这些测试是最小的虚拟测试,但是编译它们需要几秒钟(大约20秒):
#include "boost/test/included/unit_test.hpp"
BOOST_AUTO_TEST_CASE(dummy)
{
BOOST_CHECK_EQUAL(2+2, 4);
}
BOOST_AUTO_TEST_CASE(dummyFail)
{
BOOST_CHECK_EQUAL(2+3, 4);
}
手册建议使用库版本来加快编译速度。然而,我担心这可能不起作用- xcode已经只重建我的测试。由于目标文件存在,整个框架不会再次编译。
我猜这是头文件和模板在Boost的数量。占用大部分编译时间的测试。
你知道如何显著提高编译速度吗?把它当图书馆用吗?将只包括部分提振。测试工作?
任何帮助都非常感谢!
编译缓慢的原因是boost/test/included/unit_test.hpp
太大了。使用库可以提高速度,因为庞大的头文件是在构建库时编译的,而不是在构建库之后。然后,您的测试包含更小的标题集,从而缩短构建时间。
因为我懒得构建库,我使用的另一种方法是让一个源文件(从不更改,因此很少重新构建)包含完整的boost测试,然后让所有真正的测试源只包含boost/test/unit_test.hpp
。
尝试使用预编译的头文件,这应该会减少编译时间。详情可在此查阅:http://www.boost.org/boost-build2/doc/html/bbv2/reference/precompiled_headers.html
我相信所有的选项现在都在官方文档中描述了(参见用法变体)。
静态库使用变量非常方便,并且大大减少了编译时间。如前所述,可以创建一个只包含两行代码的源文件,单独编译并将其与其他测试链接起来。关于链接文档的注释。我认为该页有错误,即这里:
一个且仅一个翻译单元应包括以下行:
#define BOOST_TEST_MODULE test module name #include <boost/test/unit_test.hpp>
这会导致"未定义引用"。链接阶段错误。我认为应该改成:
#define BOOST_TEST_MODULE test module name
#include <boost/test/included/unit_test.hpp>
相关文章:
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- 用于交叉编译和CMake的预处理器宏的单元测试
- MinGw 无法从 cmake 编译测试文件
- C++代码以测试另一个.cpp如果可以编译它
- 提升 1.64 单元测试编译失败
- 在C++中使用 Catch 测试框架编译错误"error: expected ';' at end of declaration list"
- 有没有办法在不使用 #ifdef 的情况下不编译发布版本中的单元测试函数体?
- 在Raspbian上编译pybind11测试用例时出现致命错误
- 如何让谷歌测试正常运行。测试总是失败。(它不会编译)
- 如何从测试脚本中运行WAF编译C++程序?
- 如何测试采用 std::initializer_list 的 ctor 具有编译时已知长度?
- 谷歌测试编译错误 Os X:函数式转换从"int"到"internal::FloatingEq2Matcher"的模糊转换<float>
- 使用Mingw-w64编译Google测试
- Cmake无法在qt-creater/collect2上编译简单的测试程序:错误:ld
- Cxx测试编译,缺少主
- C++测试编译错误
- SDL测试编译期间出错
- 为什么谷歌测试编译,但不能看到我的项目来源
- Gtest:测试编译错误
- Boost 单元测试编译通过 Eclipse 失败