我可以将多个BOOST单元测试链接到一个测试二进制文件中吗
Can I link multiple BOOST unit tests into a single test binary?
我最近开始尝试对一个古老的大型(>100万行)程序进行测试。当前没有单元测试。此外,程序是链接在一起的每个单独的文件-没有组件库。此外,对象高度相互依赖,如果不链接到至少一半的对象文件,则很难(不可能?)链接到任何对象文件。
是的,我知道,我的生活很糟糕。
我想做一些重构(显然),但在开始移动之前,我想先做一些测试。我目前的想法是编译一个单独的"测试程序",运行我创建的所有测试。这将大大简化我的联系问题,让我专注于真正的问题。所以我有两个问题:
- 是否可以将多个BOOST单元测试文件链接到一个测试可执行文件中
- 有更好的解决方案吗
我想,这正是使用boost测试的方法。我会保留一个简短的main.cpp文件,由2行组成:
#define BOOST_TEST_MODULE "C++ Unit Tests for MyTangledLibrary"
#include <boost/test/included/unit_test.hpp>
然后我会不断添加测试模块*.cpp文件,这些文件一起编译成一个可执行的
#include <boost/test/unit_test.hpp>
<< your include files >>
BOOST_AUTO_TEST_SUITE(FancyShmancyLogic)
BOOST_AUTO_TEST_CASE(TestingIf2x3equals6)
{
...
}
BOOST_AUTO_TEST_CASE(TestingIf2x2equals4)
{
...
}
BOOST_AUTO_TEST_SUITE_END()
是的,您将能够将main.cpp和所有模块编译为一个大型可执行文件。
相关文章:
- C++代码以测试另一个.cpp如果可以编译它
- 如果模板参数是另一个模板的实例化,则键入特征测试
- 使用一个 for 循环如何迭代和测试迭代器值?
- 测试迭代器是否位于列表中的最后一个
- C++多态性:如何测试一个类是否派生自另一个基类
- 助推.如何在另一个测试单元中运行一个测试组件
- 使用 SFINAE 测试是否可以将一个指针类型static_cast到另一个指针类型
- 单元测试类无法在我要测试的同一解决方案中的另一个项目中找到类
- 如果前一个测试条件成功,则禁用测试条件
- C++回文检查解决方案被一个测试用例跳闸
- 您如何模拟一个正在测试GMOCK的函数
- 为了准确地进行基准测试,我应该制作一个大函数原子吗
- 输出结果时如何将参数化测试合并为一个
- 使用CATCE进行BDD风格测试中多个数据的一个测试
- 我需要一个测试案例来证明我的算法/代码错误
- 从谷歌测试框架中的另一个测试执行测试
- 为什么矢量在一个测试中比地图快,而在另一个测试则不然
- 试图链接一个测试程序到一个库,得到错误:iostream:没有这样的文件或目录
- 使用cmake:我如何编写一个测试来验证类是抽象的?
- 我可以将多个BOOST单元测试链接到一个测试二进制文件中吗