<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.9 運行測試子集 **NOTE**:*此示例代碼可以在 https://github.com/dev-cafe/cmake-cookbook/tree/v1.0/chapter-04/recipe-09 中找到。該示例在CMake 3.5版(或更高版本)中是有效的,并且已經在GNU/Linux、macOS和Windows上進行過測試。* 前面的示例中,我們學習了如何在CMake的幫助下并行運行測試,并討論了從最長的測試開始是最高效的。雖然,這種策略將總測試時間最小化,但是在特定特性的代碼開發期間,或者在調試期間,我們可能不希望運行整個測試集。對于調試和代碼開發,我們只需要能夠運行選定的測試子集。在本示例中,我們將實現這一策略。 ## 準備工作 在這個例子中,我們假設總共有六個測試:前三個測試比較短,名稱分別為`feature-a`、`feature-b`和`feature-c`,還有三個長測試,名稱分別是`feature-d`、`benchmark-a`和`benchmark-b`。這個示例中,我們可以用Python腳本表示這些測試,可以在其中調整休眠時間: ```python import sys import time # wait for 0.1 seconds time.sleep(0.1) # finally report success sys.exit(0) ``` ## 具體實施 以下是我們CMakeLists.txt文件內容的詳細內容: 1. `CMakeLists.txt`中,定義了六個測試: ```cmake cmake_minimum_required(VERSION 3.5 FATAL_ERROR) # project name project(recipe-09 LANGUAGES NONE) # detect python find_package(PythonInterp REQUIRED) # define tests enable_testing() add_test( NAME feature-a COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/feature-a.py ) add_test( NAME feature-b COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/feature-b.py ) add_test( NAME feature-c COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/feature-c.py ) add_test( NAME feature-d COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/feature-d.py ) add_test( NAME benchmark-a COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/benchmark-a.py ) add_test( NAME benchmark-b COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/benchmark-b.py ) ``` 2. 此外,我們給較短的測試貼上`quick`的標簽,給較長的測試貼上`long`的標簽: ```cmake set_tests_properties( feature-a feature-b feature-c PROPERTIES LABELS "quick" ) set_tests_properties( feature-d benchmark-a benchmark-b PROPERTIES LABELS "long" ) ``` 3. 我們現在可以運行測試集了,如下: ```shell $ mkdir -p build $ cd build $ cmake .. $ ctest Start 1: feature-a 1/6 Test #1: feature-a ........................ Passed 0.11 sec Start 2: feature-b 2/6 Test #2: feature-b ........................ Passed 0.11 sec Start 3: feature-c 3/6 Test #3: feature-c ........................ Passed 0.11 sec Start 4: feature-d 4/6 Test #4: feature-d ........................ Passed 0.51 sec Start 5: benchmark-a 5/6 Test #5: benchmark-a ...................... Passed 0.51 sec Start 6: benchmark-b 6/6 Test #6: benchmark-b ...................... Passed 0.51 sec 100% tests passed, 0 tests failed out of 6 Label Time Summary: long = 1.54 sec*proc (3 tests) quick = 0.33 sec*proc (3 tests) Total Test time (real) = 1.87 sec ``` ## 工作原理 現在每個測試都有一個名稱和一個標簽。CMake中所有的測試都是有編號的,所以它們也帶有唯一編號。定義了測試標簽之后,我們現在可以運行整個集合,或者根據它們的名稱(使用正則表達式)、標簽或編號運行測試。 按名稱運行測試(運行所有具有名稱匹配功能的測試): ```shell $ ctest -R feature Start 1: feature-a 1/4 Test #1: feature-a ........................ Passed 0.11 sec Start 2: feature-b 2/4 Test #2: feature-b ........................ Passed 0.11 sec Start 3: feature-c 3/4 Test #3: feature-c ........................ Passed 0.11 sec Start 4: feature-d 4/4 Test #4: feature-d ........................ Passed 0.51 sec 100% tests passed, 0 tests failed out of 4 ``` 按照標簽運行測試(運行所有的長測試): ```shell $ ctest -L long Start 4: feature-d 1/3 Test #4: feature-d ........................ Passed 0.51 sec Start 5: benchmark-a 2/3 Test #5: benchmark-a ...................... Passed 0.51 sec Start 6: benchmark-b 3/3 Test #6: benchmark-b ...................... Passed 0.51 sec 100% tests passed, 0 tests failed out of 3 ``` 根據數量運行測試(運行測試2到4)產生的結果是: ```shell $ ctest -I 2,4 Start 2: feature-b 1/3 Test #2: feature-b ........................ Passed 0.11 sec Start 3: feature-c 2/3 Test #3: feature-c ........................ Passed 0.11 sec Start 4: feature-d 3/3 Test #4: feature-d ........................ Passed 0.51 sec 100% tests passed, 0 tests failed out of 3 ``` ## 更多信息 嘗試使用` $ ctest --help `,將看到有大量的選項可供用來定制測試。
                  <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>

                              哎呀哎呀视频在线观看