2011-10-13 245 views
3

我正在尝试使用Visual Studio和Boost Test设置使用C++项目的单元测试。我已经阅读了关于这个组合的在这里和其他地方的所有问题,但尽管我的问题似乎很基本,但是我没有找到任何有关它的信息 - 所以要么我错了,要么我只是愚蠢。在Visual Studio中执行单个Boost测试单元测试

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

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

回答

1

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

例如,如果你写的两个单元测试:

BOOST_AUTO_TEST_CASE(testA) 
{ 
} 

BOOST_AUTO_TEST_CASE(testB) 
{ 
} 

你可能会碰到只能使用第一种:

my_tests --run_test=testA 

您可能会发现一些用法示例here

以编程方式选择要编译的cpp是一项比较困难的任务。该解决方案可根据您的编译时间各不相同,测试CPPS的数量,...

+0

哦我明白了,这很有道理:)谢谢。 – Roel

1

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

+0

谢谢,这是有道理的。我只是希望它不会影响我的测试编译时间太多。 – Roel