eclipse - 无头模式下的 SWTBot 和 java.lang.ExceptionInInitializerError
问题描述
我们遇到以下问题。如果我们尝试在 Jenkins 管理下执行我们的自动化测试套件,我们会在使用键盘的测试中收到 java.lang.ExceptionInInitializerError。在 Jenkins 控制下执行测试意味着 SWTBot 处于无头模式。我们的目标平台是 Windows 10。根据 SWTBot 开发人员的说明,无头模式未在 Windows 下进行测试。我们使用 SWTBot 版本 2.2.1。如果我们在没有 Jenkins 的远程虚拟机上执行 SWTBot 测试套件。未观察到此问题。此外,我们的调查表明,如果未找到键盘布局,则可以在本地计算机上重现此问题。所以,我想这个问题的根本原因是在这种情况下缺少物理键盘。我们还考虑了 java.lang。
我的调查表明,当测试尝试按下键时会发生此问题。通过使用 setText 方法而不是 typeText 可以部分解决此问题。但是我们有一组测试来验证键盘组合的处理,例如 Alt+A 或按 Enter。
正在测试的应用程序是基于非常老的 Eclipse 平台(版本 3.6)的 Eclipse RCP 应用程序
解决方案
根据 SWTBot 论坛的建议。(SWTBot论坛话题)下面这行代码
SWTBotPreferences.KEYBOARD_LAYOUT = "EN_US";
解决了这个问题。此行插入到具有注释 @BeforeTest 的方法中
推荐阅读
- ios - Flutter - 从 Firebase 加载此个人资料图片时遇到问题
- maven - 已部署的 Github 包中缺少父 POM
- python - 循环遍历excel工作表并使用Python将值存储在变量中
- c# - 使用 moq - void 方法的单元测试 c#
- r - 香农多样性的箱线图
- maven - 在 Maven 命令行参数中传递占位符变量
- ansible - Ansible Jinja2 循环问题
- database - 抛出异常:System.Data.dll 中的“System.Data.OleDb.OleDbException”
- excel - VBA代码列下的超链接特定单元格
- r - 在 R 中的 dplyr 上下文中应用递归函数