3

私は100のテスト方法を持っています。各テストの後、いくつかのアクション (データのクリーンアップ) を実行する必要があります。これらの 100 のテストにはそれぞれ異なるアクションがあります。これらの 100 個のテストは、1 つのパッケージまたはクラスに含まれていません。それらは配布されています。

どうすればこれを達成できますか?

現時点では、テストに合格すると、クリーンアップが行われます。これはテストの一部であるためです。ただし、テストが失敗した場合、クリーンアップは行われません。どうすればこれを機能させることができますか?

任意のポインターが役立ちます。

4

4 に答える 4

2

テストに共通のクリーンアップがない場合は、次のような try/finally ブロックを使用して、テスト メソッド内からテストが確実にクリーンアップされるようにすることができます。

try {
   // do test
}
finally {
   // do cleanup
}

テストメソッド間に共通のクリーンアップがある場合は、クリーンアップ@AfterMethodを行うために使用できます。

あなたの場合、一般的なクリーンアップがあまりないように聞こえるので、最初のほうがうまくいくかもしれません。100 種類のクリーンアップ方法が必要かどうか、または一般的なセットアップ/クリーンアップが存在する可能性があるかどうかも検討する価値があります。

于 2013-04-20T13:44:55.723 に答える
1

@AfterMethod を使用して、テスト後にクリーンアップしているようです。失敗後に @AfterMethod を機能させるには、次を使用する必要があります。

@AfterMethod(alwaysRun=true)
于 2015-07-14T15:37:35.707 に答える
1

@AfterMethod は、すべてのクラスがこのメソッドを取得する必要があることを意味します。したがって、各クラス/メソッドを編集する必要があります。@AfterGroups についても同様です。

私が提案するのは、IInvokedMethodListenerを実装することです。これにより、 beforeInvocation および afterInvocation メソッドが提供されます。afterInvocation メソッドで、クリーンアップ コードを実装します。このクリーンアップが必要なすべてのテストを含むスイート ファイルを作成し、このリスナーを指定します。

それが役に立てば幸い。

于 2013-04-21T07:24:49.010 に答える