テストが失敗したときのスクリーンショットを撮りたかったのですが、あとがき @After メソッドを実行します。
そうすることは可能ですか?TestWatcher を使用すると、failed() メソッドは @After の後に実行されます。
さらに、@After で呼び出す super.afterTest() があるため、@After コンテンツを TestWatcher finished() に渡すことはできません。
何か案は?
TestWacher
finished()
failed()
@after
TestWatcher
の基本クラスである指定されたメソッドの前に、メソッドを実行したり実行したりすることはできませんRules
。
@before
ルールの設定方法により、 の前後にルールを設定することはできません@after
。テスト メソッドに配置するシェルのようなルールを考えることができます。最初に実行するシェルは@before/@after
. その後、@rules
が適用されます。(各 '@Test' の後、および JUnit の各 '@After' の前に、Apply '@Rule' で@Troy を参照してください)
1 つの実行順序@test
は次のとおりです。
@TestWatcher starting
@Before
@Test
@After
@TestWatcher finished
私は同じ問題を抱えていたので、新しいルールの finished() メソッドで @After からコードを実行するようにコードを変更しました。したがって、実行順序は次のようになります。