Java SWTBot:Press";F5";关于包资源管理器中的项目

Java SWTBot:Press";F5";关于包资源管理器中的项目,java,eclipse,swt,swtbot,Java,Eclipse,Swt,Swtbot,我目前正在尝试使用SWTBot测试按F5键绑定来刷新包资源管理器中的项目。到目前为止,我一直没有成功 当我尝试按F5键绑定时,如下所示: SWTBotView-packageExplorer=getPackageExplorer(); SWTBotTree=packageExplorer.bot().tree(); SWTBotTreeItem=tree.getTreeItem(“新项目”); treeItem.select(); treeItem.按快捷键(0,SWT.F5,(char)0);

我目前正在尝试使用SWTBot测试按F5键绑定来刷新包资源管理器中的项目。到目前为止,我一直没有成功

当我尝试按F5键绑定时,如下所示:

SWTBotView-packageExplorer=getPackageExplorer();
SWTBotTree=packageExplorer.bot().tree();
SWTBotTreeItem=tree.getTreeItem(“新项目”);
treeItem.select();
treeItem.按快捷键(0,SWT.F5,(char)0);
我收到以下堆栈跟踪:

java.lang.ExceptionInInitializeError
在org.eclipse.swtbot.swt.finder.keyboard.keyboard.pressShortcut(keyboard.java:138)上
位于org.eclipse.swtbot.swt.finder.widgets.AbstractSWTBot.pressShortcut(AbstractSWTBot.java:862)
位于org.eclipse.project.ui.wizard.project.RefreshUiTest.performDefaultEclipseRefresh(RefreshUiTest.java:43)
位于org.eclipse.project.ui.wizard.project.RefreshUiTest.defaultEclipseBehaviourIsNotHindered(RefreshUiTest.java:31)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:483)
位于org.junit.runners.model.FrameworkMethod$1.runReflectVeCall(FrameworkMethod.java:47)
位于org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
位于org.junit.runners.model.FrameworkMethod.invokeeexplosive(FrameworkMethod.java:44)
位于org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
位于org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
位于org.junit.internal.runners.statements.runafter.evaluate(runafter.java:27)
位于org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
位于org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
位于org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
位于org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
位于org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
位于org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
访问org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
位于org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
位于org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
位于org.junit.runners.ParentRunner.run(ParentRunner.java:309)
位于org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner.run(SWTBotJunit4ClassRunner.java:54)
位于org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
位于org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
位于org.eclipse.pde.internal.junit.runtime.remotepluginterstrunner.main(remotepluginterstrunner.java:62)
位于org.eclipse.pde.internal.junit.runtime.PlatformUITestHarness$1.run(PlatformUITestHarness.java:47)
位于org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
位于org.eclipse.swt.widgets.Synchronizer.runasynchmessages(Synchronizer.java:135)
在org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3717)上
在org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3366)上
位于org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
位于org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
位于org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
位于org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:140)
位于org.eclipse.ui.internal.Workbench$5.run(Workbench.java:611)
位于org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
位于org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
位于org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
位于org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
位于org.eclipse.pde.internal.junit.runtime.NonUIThreadTestApplication.runApp(NonUIThreadTestApplication.java:54)
位于org.eclipse.pde.internal.junit.runtime.UITestApplication.runApp(UITestApplication.java:47)
位于org.eclipse.pde.internal.junit.runtime.NonUIThreadTestApplication.start(NonUIThreadTestApplication.java:48)
在org.eclipse.equinox.internal.app.eclipseeapphandle.run上(eclipseeapphandle.java:196)
位于org.eclipse.core.runtime.internal.adapter.eclipseeappluncher.runApplication(eclipseeappluncher.java:110)
位于org.eclipse.core.runtime.internal.adapter.eclipseeappluncher.start(eclipseeappluncher.java:79)
位于org.eclipse.core.runtime.adapter.EclipseStarter.run(EclipseStarter.java:354)
位于org.eclipse.core.runtime.adapter.EclipseStarter.run(EclipseStarter.java:181)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:483)
位于org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
位于org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
位于org.eclipse.equinox.launcher.Main.run(Main.java:1450)
位于org.eclipse.equinox.launcher.Main.Main(Main.java:1426)
原因:java.lang.IllegalArgumentException:EN_CA.keyboard未找到,请参阅http://wiki.eclipse.org/SWTBot/Keyboard_Layouts 了解更多信息。
在org.eclipse.swtbot.swt.finder.keyboard.KeyboardLayout.getKeyboardLayout(KeyboardLayout.java:89)上
位于org.eclipse.swtbot.swt.finder.keyboard.KeyboardLayout.getDefaultKeyboardLayout(KeyboardLayout.java:75)
在org.eclipse.swtbot.swt.finder.keyboard.Ke上
Keyboard key = KeyboardFactory.getSWTKeyboard();
key.pressShortcut(Keystrokes.F5);
SWTBotPreferences.KEYBOARD_LAYOUT = "EN_US";