java - 如何安装 TestFX?

标签 java eclipse javafx testfx

我想在 Windows 上的 Eclipse (Neon) 下组合一组 jUnit 测试,以自动执行 JavaFX GUI 的测试。看起来 TestFX 是这类事情的最佳选择,但是在互联网上浏览了很多之后,我仍然不确定如何在不使用 Maven 或 Gradle 的情况下安装 TestFX。

我不熟悉 Maven 和 Gradle,并试图遵循 simple instructions通过 Maven 安装 TestFX 失败。这是在 Eclipse Mars 下完成的,之后我的简单 GUI 程序抛出了一个关于无法查找或加载主类的编译错误,以及一个选择不包含主类型的运行时错误。 (之前简单的GUI程序运行没有错误。)此后,我下载了最新的Eclipse Neon并尝试重新启动。

这就是我所做的:

  1. eclipse.org 下载并安装 Eclipse Neon .
  2. 创建一个名为 TestProject 的 Java 项目(执行环境 JavaSE-1.8)。
  3. 授予对 javafx/** 的访问权限(右键单击项目 -- 属性 -- Java 构建路径 -- 库 -- JRE 系统库 -- 访问规则 -- 添加)。
  4. 使用最少的内容创建 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 repository 复制文件 testfx-core-4.0.0-20150226.214553-8.jar (从 How to use TestFX in your project通过直接下载部分链接)到我的 Eclipse 项目,与 JRE 系统库处于同一级别;
  • 将 jar 文件添加到构建路径(右键单击项目 -- 属性 -- Java 构建路径 -- 库 -- 添加 JARS) - 这会自动创建一个名为 Referenced Libraries 的目录,并将 jar 文件复制到其中;和
  • 创建一个 JUnit 测试(右键单击源文件夹 -- 新建 -- JUnit 测试用例),填写相应的测试下的类字段,并为测试用例指定一个名称 (MyTest)。
  • 然后我尝试扩展 MyTest 类以使用 testfx:

    这是第二种情况的代码:

    package test;
    import org.junit.Test;
    import org.testfx.framework.junit.ApplicationTest;
    public class MyTest extends ApplicationTest { }
    

    在每种情况下,eclipse 都会提示父类(super class) GuiTest/ApplicationTest 无法解析为类型。

    我怀疑问题是我没有正确安装testfx。有人可以帮忙吗?

    最佳答案

    有多个依赖关系;必须将以下 jar 文件添加到引用的库中(将 jar 文件复制到项目中后,右键单击项目 -- 属性 -- Java 构建路径 -- 库 -- 添加 JAR...)。

    以上内容独立于Gradle和Maven。或者,也可以使用 Gradle 提取文件:

    1. 在 Eclipse 中创建 Gradle 项目。
    2. 在 build.gradle 的 dependencies block 中,插入以下行 ( source ):

      testCompile "org.testfx:testfx-core:4.0.+"
      testCompile "org.testfx:testfx-junit:4.0.+"
      
    3. 右键项目--Gradle--刷新Gradle项目

    这会将所需的文件放入项目和外部依赖项文件夹中。

    TestFX 4 有用教程:https://www.youtube.com/watch?v=NG03nNpSmgU .

    关于java - 如何安装 TestFX?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40801957/

    相关文章:

    java - 如何在 Eclipse 中将可执行 jar 文件添加到我的项目中?

    java - 如何在运行时为 Servlet 或 JSP 应用程序中的现有文本框设置值?

    java - 如何使用 ClassLoader 将一个项目包含在另一个项目中

    java - 如何从第二个 Controller 将值传递到已打开的阶段(第一个 Controller )?

    java - 列表比较算法复杂度的改进

    java - 如何为每个对象使用变量

    java - 在 eclipse 3.7.2 上更新 swt 插件

    python - 如何在自动完成的 Eclipse PyDev 插件中加载 PyGTK 文档?

    javafx - 输入键事件在 Javafx 对话框中不起作用?

    JavaFX 在 FX 应用程序线程之外的另一个线程中运行 WebEngine