<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sky's blog

    我和我追逐的夢

    常用鏈接

    統計

    其他鏈接

    友情鏈接

    最新評論

    TestNG官方文檔中文版(5)-測試方法/類和組

    5 - Test methods, Test classes and Test groups
    5.1 - Test groups

    TestNG容許執行復雜的測試方法分組。不僅可以申明方法屬于組,而且可以指定分組包含其他分組。
    然后TestNG可以被調用,并被要求包含某些分組和排除其他的分組。
    這將提供怎樣劃分測試的最大彈性,并且如果想運行兩個不同的測試裝置不需要重新編譯。

    例如,非常普遍的需要至少兩個種類的測試

        * Check-in tests.  這些測試將在提交新代碼之前運行. 它們典型的被要求快速而且僅僅確認沒有基礎功能被破壞。
        * Functional tests.  這些測試將覆蓋所有的軟件功能,并且必須運行至少1天,盡管理想的是連續運行.

    代表性的,check-in測試是功能性測試的子集。TestNG容許用非常直接的方式說明這個。
    例如: 可以這樣構造測試,申明完整的測試類屬于"functest"組,另外兩個方法屬于組"checkintest":

    public class Test1 {
      @Test(groups = { "functest", "checkintest" })
      public void testMethod1() {
      }

      @Test(groups = {"functest", "checkintest"} )
      public void testMethod2() {
      }

      @Test(groups = { "functest" })
      public void testMethod3() {
      }

    }

    調用TestNG,使用

    <test name="Test1">
      <groups>
        <run>
          <include name="functest"/>
        </run>
      </groups>
      <classes>
        <class name="example1.Test1"/>
      </classes>
    </test>
    將運行在類中的所有測試方法,如果使用checkintest調用則將只運行testMethod1()和testMethod2().

    這里由其他例子,這次使用正則表達式。假設某些測試方法可能無法在Linux上運行,測試將是類似如此:
    @Test
    public class Test1 {
      @Test(groups = { "windows.checkintest" })
      public void testWindowsOnly() {
      }

      @Test(groups = {"linux.checkintest"} )
      public void testLinuxOnly() {
      }

      @Test(groups = { "windows.functest" )
      public void testWindowsToo() {
      }
    }

    你可以使用下面的testng.xml文件只啟動Windows方法:

    <test name="Test1">
      <groups>
        <run>
          <include name="windows.*"/>
        </run>
      </groups>

      <classes>
        <class name="example1.Test1"/>
      </classes>
    </test>

    注意:TestNG使用正則表達,而不是wildmats。注意這個差別。

    Method groups
    同樣可以包含或排除個別方法:

    <test name="Test1">
      <classes>
        <class name="example1.Test1">
          <methods>
            <include name=".*enabledTestMethod.*"/>
            <exclude name=".*brokenTestMethod.*"/>
          </methods>
         </class>
      </classes>
    </test>

    這在需要使莫個單獨的方法失效而不想重新編譯時非常方便,但是不建議太多的使用這個機制,因為這將可能破壞你的測試框架 如果你開始重構你的java代碼(標簽中使用的正則表達式可能不再匹配你的方法)
    5.2 - Groups of groups

    "functest" itself will contain the groups "windows" and "linux" while "checkintest will only contain "windows".  Here is how you would define this in your property file:
    組可以包含其他組。這些組被稱為"MetaGroups"。例如,你可能想定義一個"all"組,包括"checkintest"和"functest"。"functest"自身將包含組 "windows" 和 "linux",而"checkintest"將包含"windows".

    <test name="Regression1">
      <groups>
        <define name="functest">
          <include name="windows"/>
          <include name="linux"/>
        </define>
     
        <define name="all">
          <include name="functest"/>
          <include name="checkintest"/>
        </define>
     
        <run>
          <include name="all"/>
        </run>
      </groups>
     
      <classes>
        <class name="test.sample.Test1"/>
      </classes>
    </test>

    5.3 - Exclusion groups

    TestNG 容許包含組也容許排除組.

    例如,當由因為最近的修改而臨時破壞的測試而又沒有時間去修復它們時非常有用。無論如何,你想要干凈的運行功能性測試,因此你想要是這些測試失效,但是記住它們重新被激活。
    一個簡單的解決這個問題的方法是創建一個稱為"broken"的組并讓這些測試方法歸屬它。例如,在上面的例子中,我知道testMethod2() 現在被破壞了,所有我想關閉它:

    @Test(groups = {"checkintest", "broken"} )
    public void testMethod2() {
    }

    現在我所想要做的只是在運行中排除這個組:

    <test name="Simple example">
      <groups>
        <run>
          <include name="checkintest"/>
          <exclude name="broken"/>
        </run>
      </groups>
     
      <classes>
        <class name="example1.Test1"/>
      </classes>
    </test>

    用這種方法,我將得到一個干凈的測試運行,同時記錄了那些被破壞并想要后續修復的測試。
    注意:你也可以通過使用在@Test and @Before/After annotations上的"enabled"屬性在個體的層面上關閉測試,

    5.4 - Partial groups
    你可以在類的級別上定義組,然后在方法的層次上添加組:

    @Test(groups = { "checkin-test" })
    public class All {

      @Test(groups = { "func-test" )
      public void method1() { ... }

      public void method2() { ... }
    }

    在這個類中,method2() 屬于組"checkin-test",在類的級別定義。而method1() 同時屬于 "checkin-test" 和 "func-test".

    posted on 2008-03-23 13:14 sky ao 閱讀(2241) 評論(5)  編輯  收藏 所屬分類: software test

    評論

    # re: TestNG官方文檔中文版(5)-測試方法/類和組 2008-03-23 13:25 完美世界私服

    http://www.wmsifu.cn  回復  更多評論   

    # re: TestNG官方文檔中文版(5)-測試方法/類和組 2008-03-23 13:30 飄然

    暈倒,私服廣告做到這里來了...

    大家不要點,無視一樓。  回復  更多評論   

    # re: TestNG官方文檔中文版(5)-測試方法/類和組 2008-03-24 11:39 阿里

    謝謝!
    希望樓主翻譯完后做個目錄。  回復  更多評論   

    # re: TestNG官方文檔中文版(5)-測試方法/類和組 2008-03-24 21:03 mei

    如何把一個excel文件中內容或者.csv file中內容讀出,這個是不是叫做data dirive?   回復  更多評論   

    # re: TestNG官方文檔中文版(5)-測試方法/類和組 2008-12-07 00:14 阿虎

    謝謝lz
    交個朋友吧  回復  更多評論   

    主站蜘蛛池模板: 亚洲AV无码精品色午夜果冻不卡 | 国产美女精品久久久久久久免费 | 亚洲aⅴ天堂av天堂无码麻豆| 国产精品久久久久久久久免费| 亚洲专区先锋影音| 99re6免费视频| 亚洲国产成人超福利久久精品| 日韩欧毛片免费视频| 一本色道久久综合亚洲精品蜜桃冫 | 精品无码一区二区三区亚洲桃色 | 四虎国产成人永久精品免费| 久久亚洲AV午夜福利精品一区| 久久久久国产精品免费免费不卡| 久久国产精品亚洲一区二区| 18禁无遮挡无码国产免费网站| 亚洲国产亚洲综合在线尤物| 日韩视频免费在线| 一日本道a高清免费播放| 国产AV无码专区亚洲A∨毛片| 1000部禁片黄的免费看| 亚洲精品午夜国产va久久| 亚洲AⅤ无码一区二区三区在线 | 亚洲熟女www一区二区三区| 国产成人精品123区免费视频| 一级日本高清视频免费观看| 久久久亚洲精品国产| 免费A级毛片无码无遮挡内射| jzzijzzij在线观看亚洲熟妇| 久久伊人亚洲AV无码网站| 51在线视频免费观看视频| 亚洲精品蜜夜内射| 精品国产综合成人亚洲区| av无码久久久久不卡免费网站| 羞羞的视频在线免费观看| 久久精品亚洲视频| 国产91久久久久久久免费| 免费国产叼嘿视频大全网站| 亚洲爆乳AAA无码专区| 国产AV无码专区亚洲Av| 精品国产一区二区三区免费看| 中国在线观看免费的www|