在评论中,Leukipp链接到托马斯桑德伯格(Thomas Sundberg)于2012年7月8日发表的一篇类似文章"Performing an action when a test fails",该文章提供了一个非常类似的@Rule,但使用了getScreenshotAs(OutputType.FILE),然后将其复制/移动到预期的目的地。
public class ScreenshotListener extends RunListener {
private TakesScreenshot screenshotTaker;
@Override
public void testFailure(Failure failure) throws Exception {
File file = screenshotTaker.getScreenshotAs(OutputType.File);
// do something with your file
}
}
像这样将侦听器添加到测试运行器中.
JUnitCore junit = new JUnitCore();
junit.addListener(new ScreenshotListener((TakesScreenShots) webDriver));
// then run your test...
Result result = junit.run(Request.classes(FullTestSuite.class));
3条答案
按热度按时间ryevplcw1#
几个快速搜索使我找到了一篇相关的文章,“抓取失败的Selenium测试的屏幕截图”,作者是Jason Lee,日期是2012年1月24日。(已失效的原始blogs.steeplesoft.com网址:http://blogs.steeplesoft.com/posts/2012/grabbing-screenshots-of-failed-selenium-tests.html,现在可从an archive.org mirror dated 7 Mar 2017获得。
简而言之,他建议创建一个JUnit 4
Rule
,将测试Statement
Package 在try/catch块中,并在其中调用:在评论中,Leukipp链接到托马斯桑德伯格(Thomas Sundberg)于2012年7月8日发表的一篇类似文章"Performing an action when a test fails",该文章提供了一个非常类似的@Rule,但使用了
getScreenshotAs(OutputType.FILE)
,然后将其复制/移动到预期的目的地。zphenhs42#
如果你想在运行中快速将此行为添加到你的ALL测试中,你可以使用
RunListener
接口来监听测试失败。像这样将侦听器添加到测试运行器中.
czfnxgou3#
如果您想在测试失败时进行截图,请添加此类
在所有测试之前,你应该使用这个规则: