5

テストが失敗したときのスクリーンショットを撮りたかったのですが、あとがき @After メソッドを実行します。

そうすることは可能ですか?TestWatcher を使用すると、failed() メソッドは @After の後に実行されます。

さらに、@After で呼び出す super.afterTest() があるため、@After コンテンツを TestWatcher finished() に渡すことはできません。

何か案は?

4

2 に答える 2

2

TestWacherfinished()failed()@afterTestWatcherの基本クラスである指定されたメソッドの前に、メソッドを実行したり実行したりすることはできませんRules

@beforeルールの設定方法により、 の前後にルールを設定することはできません@after。テスト メソッドに配置するシェルのようなルールを考えることができます。最初に実行するシェルは@before/@after. その後、@rulesが適用されます。(各 '@Test' の後、および JUnit の各 '@After' の前に、Apply '@Rule' で@Troy を参照してください)

1 つの実行順序@testは次のとおりです。

@TestWatcher starting
@Before 
@Test
@After
@TestWatcher finished
于 2017-04-04T15:03:56.793 に答える
0

私は同じ問題を抱えていたので、新しいルールの finished() メソッドで @After からコードを実行するようにコードを変更しました。したがって、実行順序は次のようになります。

  • @後
  • failed() (失敗した場合)
  • 終了した()
于 2014-01-09T10:43:09.207 に答える