我想在 Windows 上的 Eclipse (Neon) 下组合一组 jUnit 测试来自动化 JavaFX GUI 的测试。似乎TestFX是这种事情的蜜蜂膝盖,但是在互联网上看了很多,我仍然不确定如何在不使用Maven或Gradle的情况下安装TestFX。
我不熟悉 Maven 和 Gradle,尝试按照简单的说明通过 Maven 安装 TestFX 是不成功的。这是在 Eclipse Mars 下完成的,之后我的简单 GUI 程序抛出了一个关于无法找到或加载主类的编译错误和一个选择不包含主类型的运行时错误。(简单的 GUI 程序之前运行没有错误。)在此之后,我下载了最新的 Eclipse Neon 并尝试重新启动。
这就是我所做的:
- 从eclipse.org下载并安装 Eclipse Neon 。
- 创建一个名为 TestProject 的 Java 项目(执行环境 JavaSE-1.8)。
- 授予访问权限
javafx/**
(右键单击项目 -- 属性 -- Java 构建路径 -- 库 -- JRE 系统库 -- 访问规则 -- 添加)。 - 用最少的内容创建 MyClass:
package test; import javafx.application.Application; import javafx.stage.Stage; public class MyClass extends Application { @Override public void start(Stage stage) throws Exception { stage.setTitle("Hello World"); stage.show(); } }
- 将文件
testfx-core-4.0.0-20150226.214553-8.jar
从testfx 存储库(从如何在项目中使用 TestFX的通过直接下载部分链接)复制到我的 eclipse 项目中,与JRE 系统库位于同一级别; - 将 jar 文件添加到构建路径(右键单击项目 -- 属性 -- Java 构建路径 -- 库 -- 添加 JARS) - 这会自动创建一个名为Referenced Libraries的目录并将 jar 文件复制到其中;和
- 创建一个 JUnit 测试(右键单击源文件夹 -- 新建 -- JUnit 测试用例),在测试字段下填写相应的包和类,并为测试用例命名(MyTest)。
然后我尝试扩展 MyTest 类以使用 testfx:
class MyTest extends GuiTest {}
正如此链接中所建议的那样;和(分别)class MyTest extends ApplicationTest{}
正如此链接中所建议的那样。
这是第二种情况的代码:
package test; import org.junit.Test; import org.testfx.framework.junit.ApplicationTest; public class MyTest extends ApplicationTest { }
在每种情况下,eclipse 都抱怨超类GuiTest
/ApplicationTest
无法解析为类型。
我怀疑问题是我没有正确安装testfx。任何人都可以帮忙吗?