Selenium的开发提供的SeleneseTestCase是Junit3风格的,放在JUnit4底下跑,JUnit4的Annotation功能用不起来了。Selenium要启动浏览器,如果用不上@BeforeClass的话,每次启动都初始化一下Selenium,开个IE或者Firefox,这个测试的效率可吃不消(也有比较麻烦的Workaround,但总觉得不是很好)。而甩开SeleneseTestCase的话,又舍不得那个在测试没有通过的时候自动截屏的功能。网络上有人已经有解决方法,我整理如下:、
编写MyRunListener,继承RunListener
importorg.junit.runner.notification.Failure;
importorg.junit.runner.notification.RunListener;
publicclassMyRunListenerextendsRunListener {
@Override
publicvoidtestFailure(Failure failure)throwsException {
}
}
编写MyRunner类
importorg.junit.runner.notification.RunNotifier;
importorg.junit.runners.BlockJUnit4ClassRunner;
importorg.junit.runners.model.InitializationError;
publicclassMyRunnerextendsBlockJUnit4ClassRunner {
privateMyRunListenermyRunListener;
publicMyRunner(Class<?> c)throwsInitializationError {
super(c);
myRunListener=newMyRunListener();
}
@Override
publicvoidrun(RunNotifier rn) {
rn.addListener(myRunListener);
super.run(rn);
}
}
在测试代码中引入
@RunWith(MyRunner.class)
publicclassMyhomeTestextendsSeleneseTestCase {
具体的参与地址是: http://rockhoppertech.com/blogs/archives/45