0

EclipseでTestNGSuiteとして実行すると期待どおりに機能するTestNGテストがありますが、TestNG Ant Task(Eclipse経由)で実行すると失敗します。コマンドラインからAntを実行しても、同じテストが失敗します。ビルドは成功しますが、テストは次のメッセージで失敗します。

org.testng.TestNGException:パラメーター'homepage.title'はメソッドログインの@Testで必要ですが、@Optionalとマークされていないか定義されていません

パラメータはTestNG.xmlで正しく定義されており、前述したように、「RunasTestNGSuite」を介して実行した場合も同じテストに合格します。

前もって感謝します!他の人も助けられることを願っています!

4

1 に答える 1

0

テストのパラメーターを定義しているようですが、値を指定していないようです。

@Test
public void myTest(String myParameter){
}

これを解決するにはいくつかの方法があります。1つは、パラメータアノテーションを指定し、testng.xmlまたはjvmargを介してパラメータを渡すことです。

@Test
@Parameters({"myParameter"})
public void myTest(String myParameter){
}

testng.xmlファイル:

<suite>
    <test>
         <parameter name="myParameter" value="myValue" />
         <classes>
              <class name="org.example.MyTestClass" />
         </classes>
    </test>
</suite>

またはbuild.xmlファイルでjvmargプロパティを指定します。

<testng>
   <jvmarg value="-DmyParameter=myValue" />
   <!-- ... -->
</testng>

TestNGによって提案されているもう1つの方法は、@Optionalでパラメーターに注釈を付けることです。

@Test
@Parameters({"myParameter"})
public void myTest(@Optional("myValue") String myParameter){
}

追記として、ビルドが合格する理由は、テストの失敗時にビルドを失敗するようにAntに指示するかどうかです。この場合、ビルドはコンパイルされますが、テストが失敗した場合でも、ビルドは「成功」の結果を報告します。

<testng haltonfailure="true">
   <!-- ... -->
</testng>

プロパティのデフォルト値haltonfailureは「false」です。

パラメータの詳細とAntでのTestNGの使用方法については、 TestNGのドキュメントを参照してください。

于 2012-08-10T04:45:18.220 に答える