在Visual Studio中执行单个Boost测试单元测试

时间:2011-10-13 09:15:07

标签: c++ unit-testing boost

我正在尝试使用Visual Studio和Boost Test在c ++项目中设置单元测试。我已经在网上和其他地方读过关于这个组合的所有问题,但是虽然我的问题似乎是基本的,但是我找不到任何关于它的问题 - 所以要么我接近它错了,要么我只是愚蠢。 / p>

我有一个项目xxx_test,它测试库xxx中的功能,也在它自己的项目中。我想要做的是设置一种从命令行逐个运行所有单元测试(在主题上以.cpp文件分组)的方法。但据我所知,所有单元测试都编译成一个大的二进制文件然后运行。显然,我可以为每个带有测试的.cpp文件设置一个单独的项目,但这会让我有数十个或数百个项目,每个项目都取决于解决方案中的xxx库项目。

我想我想要的是一种将所有测试.cpp文件放入一个项目的方法,然后能够通过命令行切换到msbuild选择要包含在项目中的单个.cpp文件。或者这不是我应该这样做的方式吗?我应该每次运行它们时编译所有测试吗?我想要做的是能够非常快速地编译单个对象的测试,这样我就不必等待每次运行时重新编译所有内容。感谢。

2 个答案:

答案 0 :(得分:3)

通常所有单元测试都编译成一个大的二进制文件。但是,您只能使用runtime parameters从命令行运行一个测试。

例如,如果您编写两个单元测试:

BOOST_AUTO_TEST_CASE( testA )
{
}

BOOST_AUTO_TEST_CASE( testB )
{
}

您可以使用以下方式仅运行第一个:

my_tests --run_test=testA

您可能会发现更多用法示例here

以编程方式选择要编译的cpp是一项比较困难的任务。解决方案可能会有所不同,具体取决于您的编译时间,测试cpps数量......

答案 1 :(得分:1)

在每个测试文件中定义一个单独的测试套件,并在运行时使用--run = test_suite_name来选择要测试的测试套件