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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # JUnit5 測試套件示例 > 原文: [https://howtodoinjava.com/junit5/junit5-test-suites-examples/](https://howtodoinjava.com/junit5/junit5-test-suites-examples/) 使用 **JUnit5 測試套件**,您可以運行分散到多個測試類和不同包中的測試。 JUnit5 提供了兩個注解:[`@SelectPackages`](http://junit.org/junit5/docs/current/api/index.html?org/junit/platform/runner/SelectPackages.html)和[`@SelectClasses`](http://junit.org/junit5/docs/current/api/index.html?org/junit/platform/runner/SelectClasses.html)以創建測試套件。 此外,您可以使用其他注解來過濾測試包,類甚至測試方法。 ```java Table of Contents Project Structure for Test classes and Suite Create Test Suite with JUnit5 @SelectPackages Create Test Suite with JUnit5 @SelectClasses Filtering Packages with @IncludePackages and @ExcludePackages Filtering Test Classes with @IncludeClassNamePatterns and @ExcludeClassNamePatterns Filtering Tests with @IncludeTags and @ExcludeTags ``` 測試類名稱必須遵循正則表達式模式`^.*Tests?$`。 這意味著測試類名稱必須以`Test`或`Tests`結尾。 例如`UserMgmtTests`,`DeviceMgmtTest`等。 ## 1\. 測試類和套件的項目結構 對于此示例,我使用以下項目結構。 ![JUnit5 Test Suite Project Structure](https://img.kancloud.cn/d3/d1/d3d16230017f93fdd7265bdc3c79e1ff_355x379.png) JUnit5 測試套件項目結構 ## 2\. 使用`@SelectPackages`創建測試套件 `@SelectPackages`指定通過`@RunWith(JUnitPlatform.class)`運行測試套件時要選擇的包的名稱。 #### 指定單個包 將`packageName`作為參數傳遞給`@SelectPackages`注解。 ```java @RunWith(JUnitPlatform.class) @SelectPackages("com.howtodoinjava.junit5.examples.packageA") public class JUnit5TestSuiteExample { } ``` ![@SelectPackages - Single Package Example](https://img.kancloud.cn/fb/0b/fb0bc6af14adc1efea14abc3265d79bd_504x145.png) `@SelectPackages` – 單個包示例 #### 指定多個包 將參數中的程序包名稱作為字符串數組(在大括號`{}`中)傳遞給`@SelectPackages`注解。 ```java @RunWith(JUnitPlatform.class) @SelectPackages({"com.howtodoinjava.junit5.examples.packageA","com.howtodoinjava.junit5.examples.packageB"}) public class JUnit5TestSuiteExample { } ``` ![@SelectPackages - Multiple Packages Example](https://img.kancloud.cn/6d/2f/6d2f73d4955eba93016dd2208e2553a0_505x196.png) `@SelectPackages` – 多個包示例 請注意,如果我們在`@SelectPackages`注解中傳遞`packageX`,則將“**此軟件包及其所有子軟件包中的測試類**”用于測試套件。 ## 3\. 使用`@SelectClasses`創建測試套件 `@SelectClasses`指定通過`@RunWith(JUnitPlatform.class)`運行測試套件時要選擇的類。 #### 指定單個類 將`ClassName.class`作為參數傳遞到`@SelectClasses`注解。 ```java @RunWith(JUnitPlatform.class) @SelectClasses( ClassATest.class ) public class JUnit5TestSuiteExample { } ``` ![@SelectClasses - Single Class Example](https://img.kancloud.cn/fb/0b/fb0bc6af14adc1efea14abc3265d79bd_504x145.png) `@SelectClasses` – 單個類示例 #### 指定多個類 將參數中的類名稱作為數組(在大括號`{}`中)傳遞給`@SelectClasses`注解。 ```java @RunWith(JUnitPlatform.class) @SelectClasses( { ClassATest.class, ClassBTest.class, ClassCTest.class } ) public class JUnit5TestSuiteExample { } ``` ![@SelectClasses - Multiple Test Classes Example](https://img.kancloud.cn/8a/0b/8a0b1e9b2b827bb554ded375af735d4c_553x186.png) `@SelectClasses` – 多個測試類示例 ## 4\. `@IncludePackages`和`@ExcludePackages` 我們了解到`@SelectPackages`也會導致其所有子包都被掃描以查找測試類。 如果要排除任何特定的子包,或包括任何包,則可以使用 [`@IncludePackages`](http://junit.org/junit5/docs/current/api/org/junit/platform/suite/api/IncludePackages.html)和[`@ExcludePackages`](http://junit.org/junit5/docs/current/api/org/junit/platform/suite/api/ExcludePackages.html)注解。 #### `@IncludePackages`示例 ```java @RunWith(JUnitPlatform.class) @SelectPackages("com.howtodoinjava.junit5.examples") @IncludePackages("com.howtodoinjava.junit5.examples.packageC") public class JUnit5TestSuiteExample { } ``` 這只會添加`com.howtodoinjava.junit5.examples.packageC`中的測試類(即`ClassCTest`)中的測試。 #### `@ExcludePackages`示例 ```java @RunWith(JUnitPlatform.class) @SelectPackages("com.howtodoinjava.junit5.examples") @ExcludePackages("com.howtodoinjava.junit5.examples.packageC") public class JUnit5TestSuiteExample { } ``` 這將添加`com.howtodoinjava.junit5.examples`中測試類的測試,但不包括子包`com.howtodoinjava.junit5.examples.packageC`(即`ClassATest`和`ClassBTest`)中的所有測試類。 ## 5\. `@IncludeClassNamePatterns`和`@ExcludeClassNamePatterns` 很多時候,在選擇注解中包含所有包或測試類名稱是不可行的。 在這種情況下,您可能會提供更廣泛的包范圍,并通過 appy 篩選將哪些測試類包括在套件中或從套件中排除。 要指定要排除或包含的測試類名稱模式,可以使用[`@IncludeClassNamePatterns`](http://junit.org/junit5/docs/current/api/org/junit/platform/suite/api/IncludeClassNamePatterns.html)和[`@ExcludeClassNamePatterns`](http://junit.org/junit5/docs/current/api/org/junit/platform/suite/api/ExcludeClassNamePatterns.html)注解。 #### `@IncludeClassNamePatterns`示例 包括名稱以`ATest`或`ATests`結尾的所有測試類。 ```java @RunWith(JUnitPlatform.class) @SelectPackages("com.howtodoinjava.junit5.examples") @IncludeClassNamePatterns({"^.*ATests?$"}) public class JUnit5TestSuiteExample { } ``` #### `@ExcludeClassNamePatterns`示例 排除名稱以`ATest`或`ATests`結尾的所有測試類。 ```java @RunWith(JUnitPlatform.class) @SelectPackages("com.howtodoinjava.junit5.examples") @ExcludeClassNamePatterns({"^.*ATests?$"}) public class JUnit5TestSuiteExample { } ``` 您可以在上述注解中應用多個模式。 在多種模式的情況下,它們使用“OR”語義進行組合。 這意味著,如果類別的完全限定名稱**與至少一種模式**匹配,則該類別將包含在測試套件中/從測試套件中排除。 ## 6\. `@IncludeTags`和`@ExcludeTags` 在企業應用中,您可能已經標記了要在特定環境中運行的測試用例,例如開發或生產。 您還可以在測試套件中包含或排除基于這些標記的測試。 #### `@IncludeTags`示例 此測試套件將運行包`com.howtodoinjava.junit5.examples`(及其子包)中標記有`production`的所有測試。 ```java @RunWith(JUnitPlatform.class) @SelectPackages("com.howtodoinjava.junit5.examples") @IncludeTags("production") public class JUnit5TestSuiteExample { } ``` #### `@ExcludeTags`示例 此測試套件將排除包`com.howtodoinjava.junit5.examples`(及其子包)中所有帶有`development`標簽的測試。 ```java @RunWith(JUnitPlatform.class) @SelectPackages("com.howtodoinjava.junit5.examples") @ExcludeTags("development") public class JUnit5TestSuiteExample { } ``` 顯然,有多種方法**在 JUnit5** 中創建測試套件,并且它強烈支持**過濾測試套件**中的測試。 將我的問題放在評論部分。 學習愉快! [源碼下載](https://github.com/lokeshgupta1981/Junit5Examples/tree/master/JUnit5Examples)
                  <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>

                              哎呀哎呀视频在线观看