<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # TestNG 的前后注解 > 原文: [https://howtodoinjava.com/testng/testng-before-and-after-annotations/](https://howtodoinjava.com/testng/testng-before-and-after-annotations/) TestNG 的前后[注解](//howtodoinjava.com/testng/testng-annotations-tutorial/ "TestNG Annotations Tutorial")主要用于在執行測試方法之前和之后執行一組特定的代碼。 這些用于基本上在測試執行開始之前設置一些變量或配置,然后在測試執行結束之后清除所有這些內容。 ## 1\. TestNG 的前后注解 TestNG 提供了五種不同的`Before`和`After`注解選項,可以根據測試要求使用每種注解選項。 以下是 TestNG 提供的不同之前和之后選項。 | 注解 | 描述 | | --- | --- | | `@BeforeSuite` | 帶注解的方法將在該套件中的所有測試運行之前運行。 | | `@BeforeTest` | 帶注解的方法將在運行屬于`test`標記內的類的任何測試方法之前運行。 | | `@BeforeGroups` | 此配置方法將在其之前運行的組的列表。 保證此方法可以在調用屬于任何一個組的第一個測試方法之前不久運行。 | | `@BeforeClass` | 帶注解的方法將在調用當前類中的第一個測試方法之前運行。 | | `@BeforeMethod` | 帶注解的方法將在當前類中的所有測試方法運行之前運行。 | | `@AfterSuite` | 帶注解的方法將在該套件中的所有測試運行之后運行。 | | `@AfterTest` | 帶注解的方法將在所有屬于`test`標記內的類的測試方法運行后運行。 | | `@AfterGroups` | 此配置方法將在其后運行的組的列表。 保證在調用屬于這些組中任何一個的最后一個測試方法后不久便可以運行該方法。 | | `@AfterClass` | 帶注解的方法將在當前類中的所有測試方法運行之后運行。 | | `@AfterMethod` | 帶注解的方法將在每種測試方法之后運行。 | 讓我們嘗試一個包含所有前面帶注解的方法的示例,并了解它們何時執行。 ## 2\. TestNG 前后注解的示例 創建一個具有所有前后注解的新 TestNG 測試。 您可以根據此 [**TestNG 教程**](//howtodoinjava.com/testng/testng-tutorial-with-eclipse/ "TestNG Tutorial (With Eclipse)")中給出的說明來創建此測試。 讓我們看看如何選擇所有之前和之后的注解。 ![Select all testng annotations](https://img.kancloud.cn/37/85/37854ec20dcc693c2e9e26111d4c6417_718x467.png) 單擊確定后,您將獲得帶有所有注解的測試。 在所有方法中添加一些打印語句,以便可以按執行順序對其進行跟蹤。 ```java package com.howtodoinjava.test; import org.testng.annotations.AfterClass; import org.testng.annotations.AfterMethod; import org.testng.annotations.AfterSuite; import org.testng.annotations.AfterTest; import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeMethod; import org.testng.annotations.BeforeSuite; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; public class MyFirstTest { @Test public void testCase() { } @BeforeSuite public void beforeSuite() { System.out.println("Before Suite method"); } @AfterSuite public void afterSuite() { System.out.println("After Suite method"); } @BeforeTest public void beforeTest() { System.out.println("Before Test method"); } @AfterTest public void afterTest() { System.out.println("After Test method"); } @BeforeClass public void beforeClass() { System.out.println("Before Class method"); } @AfterClass public void afterClass() { System.out.println("After Class method"); } @BeforeMethod public void beforeMethod() { System.out.println("Before Method"); } @AfterMethod public void afterMethod() { System.out.println("After Method"); } } ``` 現在在測試用例上運行 TestNG 測試,您將在控制臺中獲得以下輸出。 ```java [TestNG] Running: C:\Users\somepath\testng-customsuite.xml Before Suite method Before Test method Before Class method Before Method After Method After Class method After Test method PASSED: testCase =============================================== Default test Tests run: 1, Failures: 0, Skips: 0 =============================================== After Suite method =============================================== Default suite Total tests run: 1, Failures: 0, Skips: 0 =============================================== [TestNG] Time taken by org.testng.reporters.XMLReporter@177b3cd: 19 ms [TestNG] Time taken by [FailedReporter passed=0 failed=0 skipped=0]: 0 ms [TestNG] Time taken by org.testng.reporters.jq.Main@b8deef: 53 ms [TestNG] Time taken by org.testng.reporters.JUnitReportReporter@10ab323: 13 ms [TestNG] Time taken by org.testng.reporters.EmailableReporter2@5e176f: 11 ms [TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@d1e89e: 184 ms ``` 恭喜,您已經成功創建了具有各種前后注解的測試類,并執行了該類。 當前示例僅包含存在于同一類中的注解。 當包含注解的類被另一個具有前后一組注解的類擴展時,讓我們學習執行流程。 ## 3\. 在超類上放置之前和之后注解 讓我們創建兩個新類`BaseClass`和`ChildClass`。 然后在兩者上添加類似的前后注解。 這里主要要注意的是`ChildClass extends BaseClass`。 測試在`ChildClass`類中定義。 #### 3.1 父類 ```java package com.howtodoinjava.test; import org.testng.annotations.AfterClass; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeMethod; public class BaseClass { @BeforeMethod public void beforeMethod() { System.out.println("BaseClass's Before Test method"); } @AfterMethod public void afterMethod() { System.out.println("BaseClass's After Test method"); } @BeforeClass public void beforeClass() { System.out.println("BaseClass's Before Class method"); } @AfterClass public void afterClass() { System.out.println("BaseClass's After Class method"); } } ``` #### 2\. 子類 ```java package com.howtodoinjava.test; import org.testng.annotations.AfterClass; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; public class ChildClass extends BaseClass { @BeforeMethod public void beforeChildMethod() { System.out.println("ChildClass's Before Test method"); } @AfterMethod public void afterChildMethod() { System.out.println("ChildClass's After Test method"); } @BeforeClass public void beforeChildClass() { System.out.println("ChildClass's Before Class method"); } @AfterClass public void afterChildClass() { System.out.println("ChildClass's After Class method"); } @Test public void testCase() { System.out.println("===== Executing actual test ======"); } } ``` 執行`ChildClass`測試將生成以下輸出。 ```java [TestNG] Running: C:\Users\somepath\testng-customsuite.xml BaseClass's Before Class method ChildClass's Before Class method BaseClass's Before Test method ChildClass's Before Test method ===== Executing actual test ====== ChildClass's After Test method BaseClass's After Test method ChildClass's After Class method BaseClass's After Class method PASSED: testCase =============================================== Default test Tests run: 1, Failures: 0, Skips: 0 =============================================== =============================================== Default suite Total tests run: 1, Failures: 0, Skips: 0 =============================================== [TestNG] Time taken by org.testng.reporters.EmailableReporter2@1549f94: 13 ms [TestNG] Time taken by [FailedReporter passed=0 failed=0 skipped=0]: 0 ms [TestNG] Time taken by org.testng.reporters.XMLReporter@1bd7848: 16 ms [TestNG] Time taken by org.testng.reporters.jq.Main@1342ba4: 52 ms [TestNG] Time taken by org.testng.reporters.JUnitReportReporter@176e552: 12 ms [TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@ff057f: 190 ms ``` 如您所見,TestNG 的報告輸出在被注解的方法之前執行父類,然后在被注解的方法之前執行子類。 在帶注解的方法之后,先執行子類方法,然后再執行父類。 這有助于我們在所有測試類中使用通用的注解前方法,并在需要時為每個測試類使用特定的**前/后注解方法**。 如果您有任何問題要給我留言。 學習愉快! 參考: [TestNG 文檔[??HTG1]](http://testng.org/doc/documentation-main.html#annotations)
                  <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>

                              哎呀哎呀视频在线观看