我想在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.jar
从testfx 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。