我想在Windows上的Eclipse(Neon)下组合一组jUnit测试,以自动化JavaFX GUI的测试。看起来TestFX就是这种事情的屈膝,但是在互联网上转了一圈后,我仍然不确定如何在不使用Maven或Gradle的情况下安装TestFX。

我对Maven和Gradle不熟悉,尝试按照simple instructions通过Maven安装TestFX失败。这是在Eclipse Mars下完成的,此后,我的简单GUI程序引发了一个有关无法找到或加载主类的编译错误以及一个Selection不包含主类型的运行时错误。 (简单的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.jartestfx repository(从How to use TestFX in your project的“通过直接下载”部分链接到)复制到我的eclipse项目中,该项目与JRE系统库位于同一级别;
将jar文件添加到构建路径(右键单击项目-属性-Java Build Path-库-添加JARS)-这会自动创建一个名为Referenced Libraries的目录,并将jar文件复制到其中;和
创建一个JUnit测试(右键单击源文件夹-新建-JUnit测试用例),在测试字段下填写适当的包和类,并为测试用例指定一个名称(MyTest)。


然后我尝试扩展MyTest类以使用testfx:


class MyTest extends GuiTest {} as advised in this link;和(分别)
class MyTest extends ApplicationTest{} as advised in this link


这是第二种情况下的代码:


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



在每种情况下,eclipse都抱怨无法将超类GuiTest / ApplicationTest解析为一种类型。

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

最佳答案

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


testfx-core-4.0.4-alpha.jar,来源:http://mavensearch.io/repo/org.testfx/testfx-junit/4.0.4-alpha
testfx-junit-4.0.4-alpha.jar,来源:http://mavensearch.io/repo/org.testfx/testfx-core/4.0.4-alpha
guava-18.0.jar,来源:http://mavensearch.io/repo/com.google.guava/guava/18.0
hamcrest-core-1.3.jar,来源:http://mavensearch.io/repo/org.hamcrest/hamcrest-all/1.3


以上是独立于Gradle和Maven的。另外,也可以使用Gradle拉出文件:


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

testCompile "org.testfx:testfx-core:4.0.+"
testCompile "org.testfx:testfx-junit:4.0.+"

右键单击项目-Gradle-刷新Gradle项目


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

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

09-04 20:24