<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 4.6 預期測試失敗 **NOTE**:*此示例代碼可以在 https://github.com/dev-cafe/cmake-cookbook/tree/v1.0/chapter-04/recipe-06 中找到,包含一個C++的示例。該示例在CMake 3.5版(或更高版本)中是有效的,并且已經在GNU/Linux、macOS和Windows上進行過測試。* 理想情況下,我們希望所有的測試能在每個平臺上通過。然而,也可能想要測試預期的失敗或異常是否會在受控的設置中進行。這種情況下,我們將把預期的失敗定義為成功。我們認為,這通常應該交給測試框架(例如:Catch2或Google Test)的任務,它應該檢查預期的失敗并向CMake報告成功。但是,在某些情況下,您可能希望將測試的非零返回代碼定義為成功;換句話說,您可能想要顛倒成功和失敗的定義。在本示例中,我們將演示這種情況。 ## 準備工作 這個配置的測試用例是一個很小的Python腳本(`test.py`),它總是返回1,CMake將其解釋為失敗: ```python import sys # simulate a failing test sys.exit(1) ``` ## 實施步驟 如何編寫CMakeLists.txt來完成我們的任務: 1. 這個示例中,不需要任何語言支持從CMake,但需要Python: ```cmake cmake_minimum_required(VERSION 3.5 FATAL_ERROR) project(recipe-06 LANGUAGES NONE) find_package(PythonInterp REQUIRED) ``` 2. 然后,定義測試并告訴CMake,測試預期會失敗: ```cmake enable_testing() add_test(example ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test.py) set_tests_properties(example PROPERTIES WILL_FAIL true) ``` 3. 最后,報告是一個成功的測試,如下所示: ```shell $ mkdir -p build $ cd build $ cmake .. $ cmake --build . $ ctest Test project /home/user/cmake-recipes/chapter-04/recipe-06/example/build Start 1: example 1/1 Test #1: example .......................... Passed 0.00 sec 100% tests passed, 0 tests failed out of 1 Total Test time (real) = 0.01 sec ``` ## 工作原理 使用`set_tests_properties(example PROPERTIES WILL_FAIL true)`,將屬性`WILL_FAIL`設置為`true`,這將轉換成功與失敗。但是,這個特性不應該用來臨時修復損壞的測試。 ## 更多信息 如果需要更大的靈活性,可以將測試屬性`PASS_REGULAR_EXPRESSION`和`FAIL_REGULAR_EXPRESSION`與`set_tests_properties`組合使用。如果設置了這些參數,測試輸出將根據參數給出的正則表達式列表進行檢查,如果匹配了正則表達式,測試將通過或失敗。可以在測試中設置其他屬性,完整的屬性列表可以參考:https://cmake.org/cmake/help/v3.5/manual/cmake-properties.7.html#properties-on-tests 。
                  <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>

                              哎呀哎呀视频在线观看