问题标签 [testfx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
801 浏览

maven - UnsatisfiedLinkError:Native Library jdk1.8.0_121\jre\bin\glass.dll 已经加载到另一个类加载器中

我有一个使用 maven 和 intellij 的项目。我使用 TestFX、Mocito 和 PowerMock 编写我的测试函数,但是当我一一运行测试时,所有测试都通过了。但是当我开始运行所有测试时,它给出了这个异常。我搜索并添加了 System.loadLibrary("glass") 它没有用。我尝试了一些解决方案,但我无法解决。有人知道是什么问题吗?

虽然我做了linkte并尝试了其他解决方案,但我无法解决glass.dll not found错误。我正在寻找一个长期解决这个问题的方法。

https://maven.apache.org/surefire/maven-surefire-plugin/examples/class-loading.html

0 投票
0 回答
443 浏览

javafx - 操作调用 runAsync 时出现 java.util.concurrent.RejectedExecutionException

在将我的 TornadoFX 版本从 1.7.12 更新到 1.7.14 时,我注意到我的一项测试失败了。当under test 中的 a 被 with status 拒绝runAsyncWithProgress时,事情似乎出轨了。我在 1.7.13 的发行说明中看到了“内部线程池在应用程序退出时关闭”的更改。将 TornadoFX 版本设置为 1.7.13 导致同样的失败,证实我怀疑它与上述更改有关。ViewThreadPoolExecutorTerminated

我写了一个简单的应用程序来演示这个错误。

和测试

测试第一次执行时,它通过了。第二次挂起,因为 runAsync 被下面的堆栈跟踪拒绝。

我怀疑我可能在 TestFX/TornadoFX 应用程序生命周期中做错了什么。每个测试周期都在创建一个新的应用程序实例,所以我很困惑为什么要保留 ThreadPoolExecutor。有什么建议么?

回购https://github.com/carltonwhitehead/fx-async-bug-test

0 投票
2 回答
2106 浏览

dialog - TestFx - 如何测试没有 id 的验证对话框

我有一个带有记录网格和按钮插入的应用程序。单击插入后,有一个表单,您可以在其中填写数据并单击确定以将新记录添加到网格中。单击确定后,如果任何文本字段与验证规则不匹配,则验证会触发带有错误信息的对话框。如果对话框没有 id,是否有任何可能的方法来使用 textFx 测试对话框上的文本?

0 投票
1 回答
602 浏览

javafx - TestFx4 / JavaFx - 如何获取 TableView Cell 图形

我正在尝试找出如何获取 tableView 的指定单元格的图形。我的场景看起来像这样:

TableView 单元格图标

我知道我可以得到一个指定单元格的值,它看起来像这样:

但我没有找到如何获取其他 TableCell 属性(即图形)来测试,如果单元格在验证后获得适当的图标。

0 投票
0 回答
62 浏览

javafx - java 7 支持的最新版本的 testfx

我能找到的最接近的是这个 stackoverflow question,但这似乎是说 4.0.0-alpha 有问题,因为它是针对 java 8 编译的。目前,我们使用的是 3.1.2,但这肯定缺少一些功能. 有人对可用的更高版本有任何消息吗?

0 投票
1 回答
889 浏览

java - TestFX 使用弹出窗口

我在 JavaFX 中有一个场景,其中有一个CustomTextField带有自动完成功能的场景。当用户键入时,会打开一个包含更多列的弹出窗口。我在 TestFX 中做了一个自动场景,女巫正在输入CustomTextField.

有没有办法通过它的列浏览弹出窗口?

结构为:Scene、Popup、HBox、VBox、Cells。实际上有一个来自数据库的列的弹出窗口。Popup 的内容是 HBox 和 VBox。(一张表)我想访问单元格的内容。文本上的“clickOn”不起作用,但如果我得到单元格的内容,我可以用“TAB”移动它并按“ENTER”

如果我对此进行系统输出:

我得到了单元格的内容,但在 TextFlow 中。我能得到它的内容吗?

0 投票
2 回答
1019 浏览

javafx - TestFx - 如何测试 javaFx MenuItems

由于 MenuItem 不是节点,因此我无法查找它。如果某些 MenuItem 被禁用,我该如何测试?我试图查找它,因为它是一个节点,它返回给我一些东西,看起来像这样..

(返回对象的 toString 表示):

(ContextMenuContent$MenuItemContainer[id=mnEditHrom, styleClass=menu-item])

但是我不能在上面投射 MenuItem,它说“节点不能转换为 MenuItem”,当我对返回的内容调用 isDisabled() 函数时,我得到的信息不正确。

假设我有带有“mnEdit”id 的 MenuItem,它被禁用。当我打电话时

它返回假。查找方法如下所示:

再说一遍,我如何测试某些 MenuItem 在 testFx 中是否被禁用?

0 投票
0 回答
874 浏览

java - 如何在无头模式下运行 TestFX?

我正在开发一个 JavaFX(使用 TornadoFX)项目,我想在无头环境(Circle CI)中对其进行测试。

我已经尝试过这里写的内容,但它不起作用。无论我如何配置 TextFX,我总是得到

例外。如果我在我的计算机上运行测试,我可以看到弹出 JavaFX 窗口并且机器人点击屏幕上的内容。

这就是我的测试的样子:

我也尝试从 gradle 设置无头模式,但它也不起作用:

如果我将上述所有参数作为 jvm 参数传递,我仍然会看到弹出 JavaFX 窗口。

如何为我的测试强制使用无头模式?我也试过这个这个这个这个,但似乎没有任何效果。

0 投票
1 回答
943 浏览

java - 如何在使用 JavaFX 元素的 Travis 上运行测试?

我想测试一个方法(也在 Travis 上远程),它需要一个 JavaFX 元素作为参数,例如ProgressIndicator.

但是当我new ProgressIndicator()在我的测试方法中创建一个时,当我执行测试(使用 Gradle)时,它在该行失败并带有

问题:如何在本地和 Travis 上的测试中实例化 JavaFX 元素?

我检查了没有 ProgressIndicator 的测试是否通过。

相关信息

  • Toolkit not initialized Java FX阐明了在 FX Toolkit 在 launch() 中启动之前尝试创建 FX 控件会产生此错误,但我无法从中找到解决方案。我应该以某种方式从我的测试中调用 launch() 吗?
  • JavaFX 2.1: Toolkit not initialized似乎包含我的错误,但与 CI 测试无关。一个解决方案涉及 a CountDownLatch,另一个类似地涉及添加com.sun.javafx.application.PlatformImpl.startup(()->{});到您的测试中,但这只能在本地解决问题,并且会生成一个java.lang.UnsupportedOperationException.

我的测试:

我的 JavaFX 类:

不确定是否相关,但我将 Gradle 与构建文件一起使用:

堆栈跟踪:

完整的示例 repo 在这里

0 投票
1 回答
1286 浏览

intellij-idea - TestFX - 测试单击按钮时是否打开场景(JavaFX - IntelliJ)

我正在尝试在 IntelliJ 中测试 Java FX 应用程序并且我正在使用 TestFX 但是我不确定如何测试单击界面上的按钮时是否打开窗口。我尝试制作一个吸气剂来获得初级阶段,然后断言这将打开 - 但是这不是应该出现在按钮单击上的阶段。

有什么建议/帮助吗?

谢谢。