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

Executing single Boost Test unit test in Visual Studio

本文关键字:Boost Test 单元测试 单个 执行 Visual Studio      更新时间:2023-10-16

我正在尝试使用Visual Studio和Boost Test与c++项目进行单元测试设置。我已经阅读了这里和互联网上其他地方关于组合的所有问题,但是尽管我的问题似乎是基本的,但我没有找到任何关于它的东西-所以要么我接近它是错误的,要么我只是愚蠢。

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

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

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

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

BOOST_AUTO_TEST_CASE( testA )
{
}
BOOST_AUTO_TEST_CASE( testB )
{
}

您可以只运行第一个,使用:

my_tests --run_test=testA

你可以在这里找到更多的用法示例。

以编程方式选择要编译的cpp是一项比较困难的任务。解决方案可能根据您的编译时间、测试cpps的数量、…

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