Visual Studio 使用教程:如何在Visual Studio中使用Boost.Test for C ++

翻译|使用教程|编辑:况鱼杰|2020-03-27 11:17:13.283|阅读 83 次

概述:在Visual Studio 2017和更高版本中,Boost.Test测试适配器已集成到Visual Studio IDE中。 它是具有C ++工作负载的桌面开发的组成部分。

# 您正在找协同办公软件吗?点击这里站长给您推荐 #

相关链接:

Visual Studio 是功能完备的 IDE,可用于编码、调试、测试和部署到任何平台,Visual Studio使用 .NET 开发 iOS、Android 和 Web 应用和游戏。


在Visual Studio 2017和更高版本中,Boost.Test测试适配器已集成到Visual Studio IDE中。 它是具有C ++工作负载的桌面开发的组成部分。

Test Adapter for Boost.Test

如果您没有安装带有C ++工作负载的桌面开发,请打开Visual Studio安装程序。选择带有C ++工作负载的桌面开发,然后选择“修改”按钮。

安装Boost

Boost.Test需要Boost,如果您没有安装Boost,我们建议您使用Vcpkg软件包管理器。

  • 请遵循Vcpkg上的说明:Windows的C ++软件包管理器来安装vcpkg(如果尚未安装)。
  • 安装Boost.Test动态或静态库:
    • 运行vcpkg install boost-test以安装Boost.Test动态库。
    • 运行vcpkg install boost-test:x86-windows-static来安装Boost.Test静态库。
  • 运行vcpkg Integrated install以使用库配置Visual Studio,并包括Boost标头和二进制文件的路径。

您可以选择如何在Visual Studio的解决方案中配置测试:您可以将测试代码包含在要测试的项目中,也可以为测试创建单独的测试项目,两种选择都各有优点和缺点。

在项目中添加测试

在Visual Studio 2017 15.6版和更高版本中,可以将用于测试的项目模板添加到项目中,测试和代码都在同一个项目中。您必须创建一个单独的构建配置才能生成测试构建。而且,您需要将测试排除在调试和发布版本之外。

在Visual Studio 2017版本15.5中,没有预配置的测试项目或项目模板可用于Boost.Test。使用说明创建和配置单独的测试项目。

创建一个Boost.Test项目

  • 要为测试创建.cpp文件,请在解决方案资源管理器中右键单击项目节点,然后选择“添加”>“新建项目”。
  • 在“添加新项”对话框中,展开“已安装”>“ Visual C ++”>“测试”。选择Boost.Test,然后选择Add将Test.cpp添加到您的项目。
新的Test.cpp文件包含一个示例测试方法。您可以在此文件中包含自己的头文件并为应用编写测试。

测试文件还使用宏为测试配置定义新的主例程。如果立即构建项目,则会看到LNK2005错误,例如“ _main已经在main.obj中定义”。

创建和更新构建配置

  • 要创建测试配置,请在菜单栏上,选择“构建”>“配置管理器”。在“配置管理器”对话框中,打开“活动解决方案配置”下的下拉列表,然后选择“新建”。在“新解决方案配置”对话框中,输入一个名称,例如“ Debug UnitTests”。在“从以下位置复制设置”下,选择“调试”,然后选择“确定”。
  • 从调试和发布配置中排除测试代码:在解决方案资源管理器中,右键单击Test.cpp并选择“属性”。在“属性页面”对话框中,在“配置”下拉列表中选择“所有配置”。选择“配置属性”>“常规”,然后打开“从构建中排除”属性的下拉列表。选择是,然后选择应用保存更改。
  • 要将测试代码包含在Debug UnitTests配置中,请在“属性页”对话框的“配置”下拉列表中选择“ Debug UnitTests”。在“排除在内部版本”属性中选择“否”,然后选择“确定”保存更改。
  • 从调试单元测试配置中排除主要代码。在解决方案资源管理器中,右键单击包含您的主要功能的文件,然后选择“属性”。在“属性页”对话框中,在“配置”下拉列表中选择“调试单元测试”。选择“配置属性”>“常规”,然后打开“从构建中排除”属性的下拉列表。选择是,然后选择确定以保存更改。
  • 将解决方案配置设置为Debug UnitTests,然后构建项目以使Test Explorer能够发现方法。

只要您创建的配置名称以“ Debug”或“ Release”开头,就会自动获取相应的Boost.Test库。项目模板使用Boost.Test的单头变体,但是您可以修改#include路径以使用独立库的变体。

创建一个单独的测试项目

在许多情况下,使用单独的项目进行测试会更容易,您无需为项目创建特殊的测试配置。或者,从“调试和发布”版本中排除测试文件。

创建一个单独的测试项目

  • 在解决方案资源管理器中,右键单击解决方案节点,然后选择“添加”>“新建项目”。
  • 在“添加新项目”对话框中,在过滤器下拉列表中选择“ C ++”,“ Windows”和“控制台”。选择控制台应用程序模板,然后选择下一步。
  • 为项目命名,然后选择创建。
  • 删除.cpp文件中的主要功能。
  • 如果您使用的是Boost.Test的单头或动态库版本,请转到“添加包含”指令。如果使用的是静态库版本,则必须进行一些其他配置:
    • 要编辑项目文件,请首先将其卸载。在解决方案资源管理器中,右键单击项目节点,然后选择“卸载项目”。然后,右键单击项目节点,然后选择“编辑<名称> .vcxproj”。
    • 将两行添加到Globals属性组,如下所示:
<PropertyGroup Label="Globals">
....
    <VcpkgTriplet>x86-windows-static</VcpkgTriplet>
    <VcpkgEnabled>true</VcpkgEnabled>
</PropertyGroup>
    • 保存并关闭* .vcxproj文件,然后重新加载该项目。
    • 要打开“属性页”,请在项目节点上单击鼠标右键,然后选择“属性”。
    • 展开C / C ++>代码生成,然后选择运行时库。选择/ MTd调试静态运行时库,或/ MT释放静态运行时库。
    • 展开链接器>系统,验证子系统设置为控制台。
    • 选择确定以关闭属性页。

添加包含指令

在您的测试.cpp文件中,添加所有需要的#include指令,以使程序的类型和功能对测试代码可见。如果您使用的是单独的测试项目,则该程序通常位于文件夹层次结构中的同级级别。如果键入#include "../",将出现IntelliSense窗口,使您可以选择头文件的完整路径。

Add #include directives

您可以通过以下方式使用独立库:

#include <boost/test/unit_test.hpp>

或者,将单头版本用于:

#include <boost/test/included/unit_test.hpp>
然后,定义BOOST_TEST_MODULE。
以下示例足以使您可以在“测试资源管理器”中发现该测试:
#define BOOST_TEST_MODULE MyTest
#include <boost/test/included/unit_test.hpp\> //single-header
#include "../MyProgram/MyClass.h" // project being tested
#include <string>

BOOST_AUTO_TEST_CASE(my_boost_test)
{
    std::string expected_value = "Bill";

    // assume MyClass is defined in MyClass.h
    // and get_value() has public accessibility
    MyClass mc;
    BOOST_CHECK(expected_value == mc.get_value());
}
最后,您可以编写和运行Boost测试了。

推荐文章:

在Visual Studio中编写C / C ++的单元测试


想要购买Visual Studio正版授权,或了解更多产品信息请点击【咨询在线客服】

慧聚IT



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,尊重他人劳动成果

文章转载自:Microsoft https://docs.microsoft.com/en-us/visualstudio/test/how-to-use-boost-test-for-cpp?view=vs-2019

登录 慧都网发表评论


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
title
title
相关厂商
相关产品
Visual Studio

非常完备的工具和服务,可帮助您为 Microsoft 平台和其他平台创建各种各样的应用程序

在线
客服
咨询
电话
400-700-1020
在线
QQ
购物车 反馈 返回
顶部
在线客服系统
live chat