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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 1.gradle項目 在eclipse中創建的java項目,用gradle管理。我要復習的是關于在gradle中使用TestNG的知識。首先TestNG環境配置如[上一篇文章](http://blog.csdn.net/itfootball/article/details/42918445)。 測試目錄下有2個java文件。一個是PersonTest.java,一個是SimpleTest。 PersonTest.java:用junit寫的測試類。 SimpleTest:TestNG寫的測試類。 ~~~ public class PersonTest { @Test public void canConstructAPersonWithAName() { Person person = new Person("Larry"); assertEquals("Larry", person.getName()); } } ~~~ ~~~ public class SimpleTest { @BeforeClass public void setUp() { System.out.println("setUp"); } @Test(groups = { "slow" }) public void aSlowTest() { System.out.println("slow test"); } @Test(groups = { "fast" }) public void aFastTest() { System.out.println("fast test"); } } ~~~ build.gradle原始腳本如下: build.gradle ~~~ apply plugin: 'java' apply plugin: 'eclipse' sourceCompatibility = 1.7 version = '1.0' jar { manifest { attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version': version } } repositories { mavenCentral() } dependencies { compile group: 'commons-collections', name: 'commons-collections', version: '3.2' compile 'org.testng:testng:6.8.17' testCompile group: 'junit', name: 'junit', version: '4.+' } task copyJars(type:Copy){ from configurations.runtime into 'libs' } uploadArchives { repositories { flatDir { dirs 'repos' } } } ~~~ 這個時候執行命令,你會發現默認會執行JUnit的case。 ~~~ D:\eclipse\workspare\TestNG_gradl>gradle build :compileJava :processResources :classes :jar :assemble :compileTestJava :processTestResources :testClasses :test :check :build BUILD SUCCESSFUL Total time: 5.179 secs ~~~ 報告如下: ![](https://box.kancloud.cn/2016-01-07_568e466ad9476.jpg) 那么我要如何選擇TestNG的呢? ## 2.執行TestNG測試 很簡單,在build.gradle添加如下語句 ~~~ test { useTestNG() } ~~~ 先執行clean任務清空之前的build文件。重新build: ~~~ D:\eclipse\workspare\TestNG_gradl>gradle clean :clean BUILD SUCCESSFUL Total time: 4.355 secs D:\eclipse\workspare\TestNG_gradl>gradle build :compileJava :processResources :classes :jar :assemble :compileTestJava :processTestResources :testClasses :test :check :build BUILD SUCCESSFUL Total time: 5.319 secs ~~~ 你會發現,執行的case就是TestNG的case啦。 ![](https://box.kancloud.cn/2016-01-07_568e466aedfce.jpg) 就是這么簡單。 ## 3.TestNG配置 ### 報告配置 默認情況下報告中html文件是存在的,我們可以選擇不生成html文件。 build.gradle: ~~~ test { useTestNG() reports.html.enabled = false } ~~~ 這個時候重新構建的話就不再生成reports文件了。 如果我們想將報告copy到其他路徑。注意這里是copy不是重定向。 ~~~ task testReport(type:TestReport){ destinationDir = file("D:/gradle_product/0120") reportOn test } ~~~ 這個時候clean在執行testReport: ~~~ D:\eclipse\workspare\TestNG_gradl>gradle clean testReport :clean :compileJava :processResources :classes :compileTestJava :processTestResources :testClasses :test :testReport BUILD SUCCESSFUL Total time: 5.447 secs ~~~ 這個時候你會在相應目錄下找到報告相關的文件。 ## 分組測試 選擇某一個組的case進行測試 build.gradle: ~~~ test { useTestNG{ includeGroups 'slow' } //reports.html.enabled = false } ~~~ 我們選擇測試slow分組的case。重新構建查看報告如下: ![](https://box.kancloud.cn/2016-01-07_568e466b07c26.jpg) 發現就執行了一條case,點進去 ![](https://box.kancloud.cn/2016-01-07_568e466b1a3a9.jpg) 分組配置成功。 ## 分class文件測試 我們上面是根據TestNG中分組來進行測試的,也有按照一個測試類文件進行測試,比如我們就像測試一個java文件里的測試項。為了區分,我們添加了一個SimpleTest1.java的TestNG的case類。 ~~~ public class SimpleTest1 { @BeforeClass public void setUp() { System.out.println("setUp"); } @Test(groups = { "slow" }) public void aSlowTest1() { System.out.println("slow test1"); } @Test(groups = { "fast" }) public void aFastTest1() { System.out.println("fast test1"); } } ~~~ 這個時候我們如果想測SimpleTest1有兩種方法。 1.include包含被測類文件 build.gradle: ~~~ test { useTestNG() systemProperty 'some.prop', 'value' include 'org/gradle/SimpleTest1.class' } ~~~ ![](https://box.kancloud.cn/2016-01-07_568e466b28bc0.jpg) 2.由于我們這里面只有2個文件,這樣我們通過剔除SimpleTest類來達到測試SimpleTest1類的效果。 測試的結果是和上面的結果一樣的,就不再貼圖了。 ## 兩種過濾條件的結合 現在我們將分組條件和分class文件這兩個條件一起使用,看看效果。 上面我們只測試了SimpleTest1.class中的全部方法,這個時候我們用分組來過濾一下,只測試SimpleTest1.class里的slow分組的方法。 build.gradle: ~~~ test { useTestNG{ includeGroups 'slow' } systemProperty 'some.prop', 'value' exclude 'org/gradle/SimpleTest.class' } ~~~ 這個時候我們重新構建,執行后你會發現只測試了aSlowTest1方法。 ![](https://box.kancloud.cn/2016-01-07_568e466b37edd.jpg) 當然過濾分組還可以通過excludeGroups ‘fast’和上面的效果是一樣的,就不再舉例了。 下面要嘗試的是,當這兩個條件組合在一起的時候沒找到要測試的case會發生什么? 剛才我們測試了SimpleTest1.class中的slow分組的case,現在把添加改成slow1,因為slow1是沒有的,所以應該不會在SimpleTest1.class找到相應的case,看這次的構建結果是啥樣的。 build.gradle ~~~ test { useTestNG{ includeGroups 'slow1' } systemProperty 'some.prop', 'value' exclude 'org/gradle/SimpleTest.class' } ~~~ 結果文件如下,結果文件是有的,但是可以看到結果文件沒有case的相關信息,說明沒有執行任何case。 ![](https://box.kancloud.cn/2016-01-07_568e466b4fa87.jpg) 3.利用testng.xml進行配置 gradle項目中也可以使用testng.xml來進行測試case的配置 我們首先新建一個testng.xml文件: ~~~ <?xml version="1.0" encoding="UTF-8"?> <suite name="doctorng"> <!--enabled="true"讓測試生效,可根據情況開啟或關閉某些測試--> <test name="test" enabled="true"> <!--指定參數--> <parameter name="accesskey" value="f0af8e412cef7e5058beeb6df2012e1e"/> <!--指定測試包,注意加 .* --> <packages> <package name="org.gradle.*"/> </packages> <!--指定測試類--> <classes> <class name="org.gradle.SimpleTest"/> <!--過濾測試類的方法--> <class name="org.gradle.SimpleTest1"> <methods> <include name="aFastTest" /> </methods> </class> </classes> <!--指定測試分組--> <groups> <run> <!--包含--> <include name="fast"/> <!--排除--> <exclude name="slow"/> </run> </groups> </test> </suite> ~~~ 然后在build.gradle中獲得該文件中的內容: ~~~ test { useTestNG{ suites(file('src/test/resources/org/gradle/testng.xml')); } beforeTest { descriptor -> logger.lifecycle("Running test: " + descriptor) } onOutput { descriptor, event -> logger.lifecycle("Test: " + descriptor + " produced standard out/err: " + event.message ) } } ~~~ 重點就是useTestNG里的閉包代碼,這就把testng.xml包含進來了。 ~~~ D:\eclipse\workspare\TestNG_gradl>gradle clean test :clean :compileJava :processResources :classes :compileTestJava :processTestResources :testClasses :test Running test: test method aFastTest(org.gradle.SimpleTest) Test: test method aFastTest(org.gradle.SimpleTest) produced standard out/err: fa st test Running test: test method aFastTest1(org.gradle.SimpleTest) Test: test method aFastTest1(org.gradle.SimpleTest) produced standard out/err: f ast test1 Running test: test method aFastTest2(org.gradle.SimpleTest) Test: test method aFastTest2(org.gradle.SimpleTest) produced standard out/err: f ast test2 Running test: test method aFastTest3(org.gradle.SimpleTest) Test: test method aFastTest3(org.gradle.SimpleTest) produced standard out/err: f ast test3 Running test: test method aFastTest1(org.gradle.SimpleTest1) Test: test method aFastTest1(org.gradle.SimpleTest1) produced standard out/err: fast test1 BUILD SUCCESSFUL Total time: 5.741 secs D:\eclipse\workspare\TestNG_gradl> ~~~ 測試報告如下: ![](https://box.kancloud.cn/2016-01-07_568e466b61549.jpg)
                  <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>

                              哎呀哎呀视频在线观看