编译Boost.Test测试更快

cle*_*ens 7 c++ testing boost build

我正在使用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);
}
Run Code Online (Sandbox Code Playgroud)

该手册建议使用库版本来加速编译.但是,我担心这可能不起作用 - xcode只能重建我的测试.由于存在目标文件,因此不会再次编译整个框架.

我猜这是Boost.Test中的头文件和模板的数量,负责大部分编译时间.

您是否知道如何更快地编译?将它用作图书馆工作吗?只包括boost.test的部分工作?

任何帮助是极大的赞赏!

Ala*_*kes 8

它编译速度慢的原因是因为boost/test/included/unit_test.hpp它很大.使用库使其更快,因为在构建库时编译了大的头,而不是之后.然后,您的测试包含一组较小的标头,从而缩短构建时间.

因为我懒得构建库,我使用的另一种方法是使用一个源文件(永远不会改变,因此很少重建)包括完整的boost测试,然后让所有真正的测试源包括boost/test/unit_test.hpp.这提供了使用该库的大部分好处.