我有一个测试套件,我在@After
之外注销系统并关闭@AfterClass
中的浏览器。我试图使用@Rule
针对每种测试方法使用Selenium进行失败的测试截图。我手动检查过@Rule
只在每个@Before
之前运行,但我想在@Test
之后和@After
之前设置它。我无法找到简单的解决方案。任何帮助将不胜感激。在每个'@Test'之后和JUnit中的每个'@After'之前应用'@Rule'
public class MorgatgeCalculatorTest {
@Before
public void before(){
System.out.println("I am before");
}
@BeforeClass
public static void beforeclass(){
System.out.println("I am beforeclass");
}
@Test
public void test(){
System.out.println("I am Test");
}
@Test
public void test2(){
System.out.println("I am Test2");
}
@After
public void after(){
System.out.println("I am after");
}
@AfterClass
public static void afterclass(){
System.out.println("I am afterclass");
}
@Rule
ExpensiveExternalResource ExpensiveExternalResource = new ExpensiveExternalResource();
static class ExpensiveExternalResource implements MethodRule {
public ExpensiveExternalResource(){
System.out.println("I am rule");
}
@Override
public Statement apply(Statement arg0, FrameworkMethod arg1, Object arg2) {
// TODO Auto-generated method stub
return null;
}
}
我得到的输出是关于使用ExternalResource规则
I am beforeclass
I am rule
I am before
I am Test
I am after
I am rule
I am before
I am Test2
I am after
I am afterclass
我提到过我只想在拍摄测试失败时才拍摄屏幕截图。不是每个测试:D –
有趣。我只对订单感兴趣,所以其实你的问题是我的回答:) –
@GáborLipták:)我很高兴! –