我想在测试失败时截取屏幕截图,但是,之后,运行@After方法。
有可能这样做吗?使用TestWatcher,方法failed()在@After之后运行。
此外,我无法将@After内容传递给TestWatcher finished()因为我有一个super.afterTest()来调用@After。
有什么想法吗?
答案 0 :(得分:1)
TestWacher
方法finished()
或failed()
无法在@after
方法之前运行,因为TestWatcher
是基础Rules
的课程。
由于设置规则的方式,您不能拥有@before
之后或@after
之前的规则。您可以考虑将测试方法放在shell上的规则。第一个继续进行的shell是@before/@after
。此后应用@rules
。 (参考Apply '@Rule' after each '@Test' and before each '@After' in JUnit中的@Troy)
一个@test
的执行顺序如下
@TestWatcher starting
@Before
@Test
@After
@TestWatcher finished
答案 1 :(得分:0)
我遇到了同样的问题并更改了我的代码,以便在新规则的finished()方法中运行@After中的代码。所以执行顺序现在是: