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