无头模式下的SWTBot和java.lang.ExceptionInInitializerError

时间:2018-11-06 10:42:56

标签: eclipse jenkins swt eclipse-rcp swtbot

我们遇到以下问题。万一我们尝试执行Jenkins管理的自动化测试套件,我们会在测试中收到与键盘一起使用的java.lang.ExceptionInInitializerError。在Jenkins控制之下执行测试意味着SWTBot处于无头模式。我们的目标平台是Windows10。据SWTBot开发人员指出,无头模式未在Windows下进行测试。我们使用SWTBot版本2.2.1。如果我们在没有Jenkins的远程虚拟机上执行SWTBot测试套件。未观察到此问题。我们的调查还显示,如果找不到键盘布局,则可以在本地计算机上重现此问题。因此,我认为在这种情况下,此问题的根本原因是缺少物理键盘。此外,我们还考虑到java.lang.ExceptionInInitializerError告诉我们初始化静态变量中出现了错误

我的调查表明,该问题是在测试尝试按下键时发生的。通过使用setText方法而不是typeText可以部分解决此问题。但是我们有一组测试可以验证对键盘组合的处理,例如Alt + A或按Enter。

正在测试的应用程序是基于非常旧的Eclipse平台(版本3.6)的Eclipse RCP应用程序

1 个答案:

答案 0 :(得分:0)

根据SWTBot论坛的建议。 (SWTBot Forum topic)下面的代码行

SWTBotPreferences.KEYBOARD_LAYOUT = "EN_US"; 

解决了此问题。该行插入具有注解@BeforeTest

的方法中