<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 4.4 使用Boost Test進行單元測試 **NOTE**:*此示例代碼可以在 https://github.com/dev-cafe/cmake-cookbook/tree/v1.0/chapter-04/recipe-04 中找到,包含一個C++的示例。該示例在CMake 3.5版(或更高版本)中是有效的,并且已經在GNU/Linux、macOS和Windows上進行過測試。* Boost Test是在C++社區中,一個非常流行的單元測試框架。本例中,我們將演示如何使用Boost Test,對求和示例代碼進行單元測試。 ## 準備工作 `main.cpp`、`sum_integers.cpp`和`sum_integers.hpp`與之前的示例相同,將更新`test.cpp`作為使用Boost Test庫進行的單元測試: ```c++ #include "sum_integers.hpp" #include <vector> #define BOOST_TEST_MODULE example_test_suite #include <boost/test/unit_test.hpp> BOOST_AUTO_TEST_CASE(add_example) { auto integers = {1, 2, 3, 4, 5}; auto result = sum_integers(integers); BOOST_REQUIRE(result == 15); } ``` ## 具體實施 以下是使用Boost Test構建項目的步驟: 1. 先從`CMakeLists.txt`開始: ```cmake # set minimum cmake version cmake_minimum_required(VERSION 3.5 FATAL_ERROR) # project name and language project(recipe-04 LANGUAGES CXX) # require C++11 set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_CXX_STANDARD_REQUIRED ON) # example library add_library(sum_integers sum_integers.cpp) # main code add_executable(sum_up main.cpp) target_link_libraries(sum_up sum_integers) ``` 2. 檢測Boost庫并將`cpp_test`鏈接到它: ```cmake find_package(Boost 1.54 REQUIRED COMPONENTS unit_test_framework) add_executable(cpp_test test.cpp) target_link_libraries(cpp_test PRIVATE sum_integers Boost::unit_test_framework ) # avoid undefined reference to "main" in test.cpp target_compile_definitions(cpp_test PRIVATE BOOST_TEST_DYN_LINK ) ``` 3. 最后,定義單元測試: ```cmake enable_testing() add_test( NAME boost_test COMMAND $<TARGET_FILE:cpp_test> ) ``` 4. 下面是需要配置、構建和測試代碼的所有內容: ```shell $ mkdir -p build $ cd build $ cmake .. $ cmake --build . $ ctest Test project /home/user/cmake-recipes/chapter-04/recipe-04/cxx-example/build Start 1: boost_test 1/1 Test #1: boost_test ....................... Passed 0.01 sec 100% tests passed, 0 tests failed out of 1 Total Test time (real) = 0.01 sec $ ./cpp_test Running 1 test case... *** No errors detected ``` ## 工作原理 使用`find_package`來檢測Boost的`unit_test_framework`組件(參見第3章,第8節)。我們認為這個組件是`REQUIRED`的,如果在系統環境中找不到它,配置將停止。`cpp_test`目標需要知道在哪里可以找到Boost頭文件,并且需要鏈接到相應的庫;它們都由`IMPORTED`庫目標`Boost::unit_test_framework`提供,該目標由`find_package`設置。 ## 更多信息 本示例中,我們假設系統上安裝了Boost。或者,我們可以在編譯時獲取并構建Boost依賴項。然而,Boost不是輕量級依賴項。我們的示例代碼中,我們只使用了最基本的設施,但是Boost提供了豐富的特性和選項,有感興趣的讀者可以去這里看看:http://www.boost.org/doc/libs/1_65_1/libs/test/doc/html/index.html 。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看