2

Maven で TestNG を使用すると、奇妙な問題が発生します。ここに投稿するにはコードが多すぎますが、関連する例を投稿します。

私はpom.xmlでTestNGテストのためにこれを持っています:

....other pom stuff....

<dependency>
     <groupId>org.testng</groupId>
     <artifactId>testng</artifactId>
     <version>6.2</version>
     <type>jar</type>
</dependency>

....other pom stuff....   

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.14.1</version>
    <configuration>
        <suiteXmlFiles>
            <suiteXmlFile>testng.xml</suiteXmlFile>
        </suiteXmlFiles>
    </configuration>
 </plugin>

 ....other pom stuff....

私のtestng.xmlファイルは次のようになります。

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="SOTest">
  <test name="SOTest">
    <classes>
      <class name="SOTest"/>
   </classes>
 </test>
</suite>

SOTest.java は次のようになります。

import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeTest;

public class SOTest {
    @BeforeSuite
    public void setup() {
        ...DO SOME STUFF...
        System.out.println("foo");
    }

    @BeforeTest
    public void setupTest() {
        ...DO SOME STUFF...
        System.out.println("bar");
    }   


    @Test
    public void test_good_subkey_pass() {
        System.out.println("baz");
        ...DO SOME STUFF...
    }
}

を実行するmvn testと、「foo」と「bar」が出力されますが、ハングして「baz」が出力されませんか? アノテーションが付けられたメソッドの実行を妨げるものを知っている人は@Testいますか?

アップデート

test_good_subkey_pass()その後、無限ループを含む別のテストがありました。最初のテストの実行が停止するのはなぜですか? preserve-order属性が に設定されていないことに注意してくださいfalse

4

1 に答える 1

2

XML ファイルが実行するテストを定義していることはわかっていますが、TestNG はクラス コードに存在する順序でテストを実行しません。XML ファイルはクラスを実行する順序を指定しているように見えますが、メソッドを実行する順序は指定していません。(また、包含/除外するメソッドを指定できることは知っていますが、それで実行順序が定義されているかどうかさえわかりません。私の経験から、テストは常にアルファベット順に実行されてきました。)

別のテストに無限ループがあった場合、それが実行されなかった理由を説明できtest_good_subkey_pass()ます。他のテスト ケースを削除して、問題が解決するかどうかを確認してください (または、@AfterSuiteまたは同様の注釈を使用して、すべてのテストの完了を通知します)。

また、testng.xml でメソッド名を指定することもできます。

これはおそらく最高のリソースです: http://testng.org/doc/documentation-main.html#testng-xml

于 2013-06-26T18:47:52.700 に答える