当前位置: 首页 > 知识库问答 >
问题:

为什么在Assertj Swing测试中偶尔会出现失败?

拓拔耀
2023-03-14

我们使用Assertj Swing3.9.2进行的gui单元测试偶尔会以难以重现的方式失败。有时整个测试套件是绿色的,有时一些测试用例失败。我们使用Ubuntu18.04LTS和GNOME两台不同的机器,我们得到了相同的错误。

抛出的异常有两个,并不时出现在不同的测试用例中:

    null
    null

此外,在不同的测试用例中,重复运行多次相同的测试可能会导致失败或成功。

特拉维斯-奇的测试也失败了。

对于ComponentLookupException,我们还可以包括以下附加信息:未找到的组件实际上显示在屏幕上,但组件层次结构是空的,从Travis构建中摘录的以下内容可以看出:

...

970 org.assertj.swing.exception.ComponentLookupException: 
971 Unable to find component using matcher org.assertj.swing.core.NameMatcher[name='labelTextField', type=javax.swing.text.JTextComponent, requireShowing=true].
972
973 Component hierarchy:
974 apt.project.frontend.view.swing.CustomDialog[name='dialog1', title='', enabled=true, modal=false, visible=true, showing=true]
975
976 at apt.project.frontend.view.swing.CustomDialogTest.testWhenOkButtonIsClickedThenInputIsSavedBeforeClosing(CustomDialogTest.java:62)

...

我们无法理解这些问题的原因,因为它们似乎完全是随机的。

这是某种已知的行为还是我们以错误的方式实现了测试(CoursePanelTest,CustomDialogTest)?

共有1个答案

巫马承德
2023-03-14

我从Travis-CI日志中看到您正在使用XVFB。我也有类似的问题。按照AssertJ(https://joel-costigliola.github.io/AssertJ/assertj-swing-running.html)的建议,切换到VNC修复了这些问题。

 类似资料:
  • 原关闭原因未解决 这是我的测试类,它的方法使用NullPointer失败。 正如您所看到的,我甚至尝试在方法中正确初始化时钟,但仍然失败。当我启动应用程序时,它按预期工作。 这是时钟豆 这是个例外 java.lang.NullPointerException:时钟

  • 问题内容: 我正在尝试进行布尔测试,以便如果其中一个胎压低于35或超过45,则系统会输出“不良充气”。 在我的课堂上,我必须使用布尔值,这是我尝试过的。但是,返回的布尔值始终为true。我不明白为什么。 问题答案: 更改为: 甚至更好: 布尔比较运算符为和。该是赋值运算符。 另外,在检查是否违反条件之前,需要进行初始设置。

  • 问题内容: 当我运行以下代码时: 我得到一个异常说: 为什么会出现此异常? 编辑:tmpList是一个LinkedList,其每个节点都包含DepConfAttr类型的对象。 我正在基于内存(首先是最高内存)对tmpList进行排序,这是DepConfAttr对象的属性之一。 上面的代码反映了我要通过以下代码实现的目标 问题答案: 为什么会出现此异常? 您要遍历列表,而不是通过迭代器从列表中删除一

  • 我得到一个当我运行我的Java应用程序。典型的原因是什么?

  • 错误:第 1 行的解析错误:函数搜索(sour ^ 期望“字符串”、“数字”、“空”、“真”、“假”、“{”、“[”,得到“未定义” 代码:

  • PWA 是 Progressive Web Apps 的缩写,翻译为渐进式网络应用。早在 2014 年, W3C 就公布过 Service Worker 的相关草案,但是其在生产环境被 Chrome 支持是在 2015 年。因此,如果我们把 PWA 的关键技术之一 Service Worker 的出现作为 PWA 的诞生时间,那就应该是 2015 年。在关注 PWA 是什么之前,先来了解一下为什么