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

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

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

    Sky's blog

    我和我追逐的夢

    常用鏈接

    統(tǒng)計

    其他鏈接

    友情鏈接

    最新評論

    TestNG官方文檔中文版(9)-重復(fù)失敗測試,junit測試,jdk1.4支持,編程式調(diào)用和Beanshell

    5.10 - Rerunning failed tests

    套件中的測試失敗時,每次testNG都會在輸出目錄中創(chuàng)建一個名為testng-failed.xml的文件。這個xml文件包含只重新運行這些失敗的測試方法的必要信息,容許只運行這些失敗的測試而不必運行全部測試。因此,一種典型的情況將是這樣:

    java -classpath testng.jar;%CLASSPATH% org.testng.TestNG -d test-outputs testng.xml
    java 
    -classpath testng.jar;%CLASSPATH% org.testng.TestNG -d test-outputs test-outputs\testng-failed.xml

    注意testng-failed.xml將包含所有必要的依賴方法,所以可以保證運行失敗的方法而不運行任何被跳過的(失敗)方法。

    5.11 - JUnit tests

    TestNG可以運行junit測試。所需要的只是在testng.classNames屬性中指定junit測試類,并設(shè)置testng.junit屬性為true。

    <test name="Test1"   junit="true">
      
    <classes>
        
    <!--  -->

    這種情況下TestNG的行為類似jnit:

        * 類中所有以test*開頭的方法將被運行。
        * 如果測試類中有方法setUp(), 將在每次測試方法調(diào)用前被執(zhí)行。
        * 如果測試類中有方法tearDown(),將在每次測試方法調(diào)用后被執(zhí)行。

    5.12 - JDK 1.4

    TestNG也可以在JDK1.4下工作。在這種情況下,需要使用發(fā)布的jdk1.4的jar文件(名為testng-...-jdk14.jar)。唯一的差別是在于注解,jdk1.4下使用流行的XDoclet javadoc注解語法:

    public class SimpleTest {
     
    /**
      * @testng.before-class = "true"
      
    */
      
    public void setUp() {
        
    // code that will be invoked when this test is instantiated
     }
     
    /**
      * @testng.test groups = "functest" dependsOnGroups = "group1,group2"
      
    */
      
    public void testItWorks() {
        
    // your test code
     }
    }

    javadoc語法的規(guī)則非常簡潔,和jdk1.5注解的唯一差別是數(shù)組串?dāng)?shù)組需要特別寫成單獨的,逗號或空格分隔的字符串。雖然值周圍的雙引號是可選的,但還是建議在任何情況下都使用雙引號,以保證將來遷移到j(luò)dk1.5時可以比較容易。

    同樣需要在<testng>的ant任務(wù)中指明sourcedir屬性(或者在命令行中使用-sourcedir),以便testNG可以找到你的測試文件的源代碼來解析javadoc注解。

    這里是jdk1.4和jdk5注解的語法對照表:

        (表格在blog中不好排版,不在這里發(fā)了,詳細(xì)內(nèi)容請參考官方文檔的原文:http://testng.org/doc/documentation-main.html#jdk-14。)

    更多jdk1.4的支持范例,請參考發(fā)行包中的test-14文件夾,這里包含全部的JDK 1.5測試對應(yīng)的使用javadoc注解的內(nèi)容。


    5.13 - Running TestNG programmatically

    在自己的程序中調(diào)用testNG也很簡單:

    TestListenerAdapter tla = new TestListenerAdapter();
    TestNG testng 
    = new TestNG();
    testng.setTestClasses(
    new Class[] { Run2.class });
    testng.addListener(tla);
    testng.run();

    這個范例創(chuàng)建了一個TestNG對象并運行測試類Run2。還增加了一個TestListener。你可以使用適配器類org.testng.TestListenerAdapter或自己實現(xiàn)org.testng.ITestListener。這個接口包含多個回調(diào)方法,使得可以追蹤測試的開始,成功,失敗等等。

    類似的,可以使用testng.xml文件調(diào)用TestNG或者自己創(chuàng)建一個虛擬的testng.xml文件。為了做到這點,需要使用org.testng.xml包的類:XmlClass, XmlTest, 等等。每個類對應(yīng)他們xml標(biāo)簽。

    例如,假設(shè)你想創(chuàng)建下面的虛擬文件:

    <suite name="TmpSuite" >
      
    <test name="TmpTest" >
        
    <classes>
          
    <class name="test.failures.Child"  />
        
    <classes>
        
    </test>
    </suite>

    你將使用下面的代碼:

    XmlSuite suite = new XmlSuite();
    suite.setName(
    "TmpSuite");

    XmlTest test 
    = new XmlTest(suite);
    test.setName(
    "TmpTest");
    List
    <XmlClass> classes = new ArrayList<XmlClass>();
    classes.add(
    new XmlClass("test.failures.Child"));
    test.setXmlClasses(classes) ;

    然后你可以將XmlSuite傳遞給TestNG:

    List<XmlSuite> suites = new ArrayList<XmlSuite>();
    suites.add(suite);
    TestNG tng 
    = new TestNG();
    tng.setXmlSuites(suites);
    tng.run();

    完整的API請參考javadoc。


    5.14 - BeanShell and advanced group selection

    如果testng.xml中的<include>和<exclude>標(biāo)簽還不足夠滿足你的需要,你可以使用BeanShell表達(dá)式來決定是否需要將一個特定的測試方法包含在測試操作中。只需要在<test>標(biāo)簽下指定這個表達(dá)式:

      <test name="BeanShell test">
       
    <method-selectors>
         
    <method-selector>
           
    <script language="beanshell"><![CDATA[
             groups.containsKey("test1")
           
    ]]></script>
         
    </method-selector>
       
    </method-selectors>
      
    <!--  -->

    當(dāng)發(fā)現(xiàn)testng.xml中有<script>標(biāo)簽,TestNG將忽略當(dāng)前<test>標(biāo)簽中的以后的組和方法的<include>和<exclude>標(biāo)簽:BeanShell表達(dá)式將是決定一個測試方法是否包含的唯一方法。

    這里有一些BeanShell腳本的額外信息:

        * 必須返回boolean值。除了這個約束,任何有效的BeanShell代碼都被容許.(例如,你可能想在工作日返回true而在周末返回false,這將容許你更加日期不同差異性的運行測試。

        * TestNG為了便利定義了以下變量:

            java.lang.reflect.Method method:  當(dāng)前測試方法
            org.testng.ITestNGMethod testngMethod:  當(dāng)前測試方法的描述
            java.util.Map<String, String> groups:  當(dāng)前測試方法所屬組的Map

        * 你可能需要在你的表達(dá)式前后增加CDATA聲明(如上面所示)以避免討厭的xml轉(zhuǎn)義字符。

    posted on 2008-09-05 15:00 sky ao 閱讀(2270) 評論(1)  編輯  收藏 所屬分類: software test

    評論

    # re: TestNG官方文檔中文版(9)-重復(fù)失敗測試,junit測試,jdk1.4支持,編程式調(diào)用和Beanshell 2008-12-09 11:09 sagittarius

    你的文章翻譯的很棒,一直在看支持你。。  回復(fù)  更多評論   

    主站蜘蛛池模板: 久久精品免费大片国产大片| 国产精品视频免费| 亚洲欧洲日韩不卡| 久久久久免费看黄A片APP | 久久亚洲私人国产精品vA| 免费精品国偷自产在线在线| 国产亚洲福利一区二区免费看| 亚洲精品无码mv在线观看网站| 国产99视频精品免费观看7| 一级毛片a免费播放王色电影 | 狼群影院在线观看免费观看直播| 亚洲av永久无码嘿嘿嘿| 久久久久亚洲AV成人网| 国产精品69白浆在线观看免费| 人人公开免费超级碰碰碰视频| 亚洲国产成人综合| 久久精品亚洲乱码伦伦中文| 免费精品国偷自产在线在线| 中文字幕一区二区三区免费视频| 日韩亚洲国产高清免费视频| 久久精品国产亚洲香蕉| 免费看男女下面日出水视频| 成人免费大片免费观看网站| 国产一级黄片儿免费看| 国产精品亚洲一区二区三区久久 | 在线观看亚洲精品国产| 成年女人毛片免费播放人| 好紧我太爽了视频免费国产 | 中国好声音第二季免费播放| 亚洲国产精品无码中文lv| 亚洲日本中文字幕区| 狠狠色婷婷狠狠狠亚洲综合| 最新69国产成人精品免费视频动漫 | 99精品视频在线免费观看| 牛牛在线精品免费视频观看| 亚洲午夜一区二区三区| 亚洲avav天堂av在线不卡| JLZZJLZZ亚洲乱熟无码| 国产免费怕怕免费视频观看| 免费做爰猛烈吃奶摸视频在线观看| 免费观看在线禁片|