我想重用一些集成测试来进行负载测试.我实现了一个由注释参数化的规则:
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Parallel {
int invocations() default 1;
int rampUpTime() default 0;
}
Run Code Online (Sandbox Code Playgroud)
在我的规则实现中,评估注释并设置一个语句,该语句具有如下的evaluate方法:
@Override
public void evaluate() throws Throwable {
ScheduledExecutorService exe = Executors.newScheduledThreadPool(invocations);
for (int i = 0; i < invocations; i++) {
ScheduledFuture<?> scheduledFuture = exe.schedule(new Runnable() {
@Override
public void run() {
try {
invocated++;
// Request test = Request.method(description.getTestClass(), description.getMethodName());
// new JUnitCore().run(test);
statement.evaluate();
} catch (Throwable e) {
e.printStackTrace();
}
}
}, i * rampUpTime, this.timeUnit);
futures.add(scheduledFuture);
}
}
Run Code Online (Sandbox Code Playgroud)
因此,evaluate …
我正在使用SWTBot为RCP应用程序运行UI测试,当在Eclipse IDE中启动测试时,该测试工作正常。现在,我想在Maven中运行测试,到目前为止也可以运行。不幸的是,通过依赖关系链org.eclipse.swtbot.eclipse.finder --> org.eclipse.ui.editors --> org.eclipse.ui.ide,org.eclipse.ui.ide它也存在于运行测试的应用程序中。使用此捆绑软件,会出现一些意外的菜单项,并且应该在测试运行时中排除捆绑软件。如何做到这一点?
在eclipse中运行测试时,我只是org.eclipse.ui.ide在SWTBot测试启动配置中排除了捆绑软件,一切都按预期进行了。