翻譯|使用教程|編輯:況魚杰|2020-03-27 11:17:13.283|閱讀 845 次
概述:在Visual Studio 2017和更高版本中,Boost.Test測試適配器已集成到Visual Studio IDE中。 它是具有C ++工作負(fù)載的桌面開發(fā)的組成部分。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
Visual Studio 是功能完備的 IDE,可用于編碼、調(diào)試、測試和部署到任何平臺,Visual Studio使用 .NET 開發(fā) iOS、Android 和 Web 應(yīng)用和游戲。
在Visual Studio 2017和更高版本中,Boost.Test測試適配器已集成到Visual Studio IDE中。 它是具有C ++工作負(fù)載的桌面開發(fā)的組成部分。
如果您沒有安裝帶有C ++工作負(fù)載的桌面開發(fā),請打開Visual Studio安裝程序。選擇帶有C ++工作負(fù)載的桌面開發(fā),然后選擇“修改”按鈕。
安裝Boost
Boost.Test需要Boost,如果您沒有安裝Boost,我們建議您使用Vcpkg軟件包管理器。
您可以選擇如何在Visual Studio的解決方案中配置測試:您可以將測試代碼包含在要測試的項(xiàng)目中,也可以為測試創(chuàng)建單獨(dú)的測試項(xiàng)目,兩種選擇都各有優(yōu)點(diǎn)和缺點(diǎn)。
在項(xiàng)目中添加測試
在Visual Studio 2017 15.6版和更高版本中,可以將用于測試的項(xiàng)目模板添加到項(xiàng)目中,測試和代碼都在同一個(gè)項(xiàng)目中。您必須創(chuàng)建一個(gè)單獨(dú)的構(gòu)建配置才能生成測試構(gòu)建。而且,您需要將測試排除在調(diào)試和發(fā)布版本之外。
在Visual Studio 2017版本15.5中,沒有預(yù)配置的測試項(xiàng)目或項(xiàng)目模板可用于Boost.Test。使用說明創(chuàng)建和配置單獨(dú)的測試項(xiàng)目。
創(chuàng)建一個(gè)Boost.Test項(xiàng)目
測試文件還使用宏為測試配置定義新的主例程。如果立即構(gòu)建項(xiàng)目,則會看到LNK2005錯(cuò)誤,例如“ _main已經(jīng)在main.obj中定義”。
創(chuàng)建和更新構(gòu)建配置
只要您創(chuàng)建的配置名稱以“ Debug”或“ Release”開頭,就會自動(dòng)獲取相應(yīng)的Boost.Test庫。項(xiàng)目模板使用Boost.Test的單頭變體,但是您可以修改#include路徑以使用獨(dú)立庫的變體。
創(chuàng)建一個(gè)單獨(dú)的測試項(xiàng)目
在許多情況下,使用單獨(dú)的項(xiàng)目進(jìn)行測試會更容易,您無需為項(xiàng)目創(chuàng)建特殊的測試配置。或者,從“調(diào)試和發(fā)布”版本中排除測試文件。
創(chuàng)建一個(gè)單獨(dú)的測試項(xiàng)目
<PropertyGroup Label="Globals"> .... <VcpkgTriplet>x86-windows-static</VcpkgTriplet> <VcpkgEnabled>true</VcpkgEnabled> </PropertyGroup>
添加包含指令
在您的測試.cpp文件中,添加所有需要的#include指令,以使程序的類型和功能對測試代碼可見。如果您使用的是單獨(dú)的測試項(xiàng)目,則該程序通常位于文件夾層次結(jié)構(gòu)中的同級級別。如果鍵入#include "../",將出現(xiàn)IntelliSense窗口,使您可以選擇頭文件的完整路徑。
您可以通過以下方式使用獨(dú)立庫:
#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()); }最后,您可以編寫和運(yùn)行Boost測試了。
推薦文章:
在Visual Studio中編寫C / C ++的單元測試
想要購買Visual Studio正版授權(quán),或了解更多產(chǎn)品信息請點(diǎn)擊
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: