web-dev-qa-db-ja.com

testng.xmlを使用して大規模なTestNGスイートから1つのテストを実行するにはどうすればよいですか?

大量のメソッドを備えたTestNGスイートがあります。 TestNGランナーの上に構築されたラッパーを使用してこのスイートを実行します。スイート内のすべてのテストは、1つを除いて失敗します。失敗したテストを1つだけ実行するには、testng.xmlに何を書き込む必要がありますか?

明らかな解決策は、すべてのメソッドに一意のグループ名を割り当ててから、testng.xmlで名前を指定することです。これは2〜3の方法の場合に機能しますが、テストの数が増えるにつれて難しくなります。

18
Sad Developer

excludeの代わりに、includeを使用できます。それはまさにあなたが望むものになるでしょう。このテストのみが実行されます。

  <classes>
    <class name="test.IndividualMethodsTest">
      <methods>
        <include name="testMethod" />
      </methods>
    </class>
  </classes>
22
smaant

これを試して:

  <classes>
    <class name="test.IndividualMethodsTest">
      <methods>
        <exclude name="testMethod" />
      </methods>
    </class>
  </classes>
7
Pierre Gardin

各実行後、TestNGは、失敗したテストのみを含むtestng-failed.xmlというファイルを作成します。そのファイルでもう一度TestNGを呼び出すだけです。

Java org.testng.TestNG testng.xml Java org.testng.TestNG testng-failed.xml

(カスタマイズされたランナーを使用しているように見えるため、org.testng.TestNGを独自のランナーに置き換えます)。

6
Cedric Beust

失敗を追跡する独自の ITestListener (とにかく独自のラッパーがあるため)を作成し、そこから失敗したテストのみを含む独自の失敗スイートファイルを生成することもできます。 TestNGのリスナー/インターセプターフックはかなり良いです。職場では、いくつかの方法でTestNGを拡張しました。

  • 生成されたデータセットのキャプチャ/再生
  • データベースへの結果ログ
  • カスタマイズされたテスト出力(ログ)
  • @DataProviderによって提供されるデータセットのID、説明などのメタデータ
  • テストケースに対する環境依存の制限のランタイムチェック
1
Jeremy Raymond

これを行うにはいくつかの方法があります。

開発にEclipseを使用していますか? TestNG用のEclipseプラグインがあり、特定のテストを実行するのにはるかに簡単な方法だと思います。プラグインを使用すると、利用可能なテストのスイート、グループ、クラス、またはメソッドを実行できます。

そうでない場合は、テストを起動するためのantタスクを設定し( http://testng.org/doc/ant.html )、「classfilesetref」などの属性を使用してテストのリストを提供できると思います。走る。別のファイルでテストを指定できるため、テストを実行するたびにbuild.xmlを更新する必要はありません。

Testngプラグインをインストールする場合。次の手順に従ってください。1-Eclipseの[ヘルプ]メニューに移動します。 2- [新しいソフトウェアのインストール]を選択します。3-追加 " http://beust.com/Eclipse 。"

指定したエラーの場合に機能しますEclippseIDE内にプラグインがインストールされていないと思います

1
blissfool

プログラムでテスト方法を選択し、トップメニューの[実行]-> [実行]に移動するか、CTRL + F11を実行します。これにより、XMLテストスイートとは独立してテストが開始されます。

0
Anthony F