Visual Studio 使用教程:如何在Visual Studio中使用Boost.Test for C ++
Visual Studio 是功能完備的 IDE,可用于編碼、調試、測試和部署到任何平臺,Visual Studio使用 .NET 開發 iOS、Android 和 Web 應用和游戲。
在Visual Studio 2017和更高版本中,Boost.Test測試適配器已集成到Visual Studio IDE中。 它是具有C ++工作負載的桌面開發的組成部分。
如果您沒有安裝帶有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添加到您的項目。

測試文件還使用宏為測試配置定義新的主例程。如果立即構建項目,則會看到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窗口,使您可以選擇頭文件的完整路徑。
您可以通過以下方式使用獨立庫:
#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正版授權,或了解更多產品信息請點擊