TestFX¶
- 目次
- TestFX
TestFXは、JavaFXの自動テストフレームワークです。
2013-12にJavaFX Advent Calendar向けに書いた日記 の刷新版(途中)です。
インストール¶
mavenリポジトリを使用してビルド¶
TestFXはmavenリポジトリで公開されているので、mavenリポジトリを使うビルドツールでビルドするだけなら別途インストールしなくても済みます。
http://mvnrepository.com/artifact/org.loadui/testFx
上記URLから現時点での最新版である3.1.2をクリックし、使用するビルドツールのタブをクリックするとビルド定義のスニペットが表示されます。
- 例)maven
<dependency> <groupId>org.loadui</groupId> <artifactId>testFx</artifactId> <version>3.1.2</version> </dependency>
- 例)gradle
'org.loadui:testFx:3.1.2'
Antはmavenリポジトリを使えないので手動でダウンロード¶
http://repo1.maven.org/maven2/org/loadui/testFx/
から、バージョンのディレクトリを降りて、JARファイルをダウンロードします
- testFX-3.1.2.jar
- testFX-3.1.2-javadoc.jar
- testFX-3.1.2-sources.jar
GitHubからソース一式を取得してビルドおよびインストール¶
TestFX公式サイト よりソース一式を取得します。GitHubで公開されているので、gitで取得してビルドします。
git cloneで指定するURLは、上述サイトの右端にある[HTTPS clone URL]欄に表示されているのでそれを指定します。
work$ git clone https://github.com/TestFX/TestFX.git work$ ls TestFX work$ ls TestFX build.gradle gradle/ gradlew LICENSE settings.gradle config/ gradle.properties gradlew.bat README.md subprojects/ work$
ビルド¶
TestFXは既にJava SE 8対応がmasterブランチに統合されています。そこで、masterブランチをビルドします。pom.xmlがあるのを見て分かるように、maven Gradleでビルドするプロジェクトとして公開されています。
- 注)subprojects/testfx-core/pom.xmlがあり、mavenでもビルドできるようです。
gradlew(Gradle wrapper)を試みるも¶
gradlewは、gradleがない環境でもインターネットから必要なものをダウンロードしてビルドをするコマンドと知って、まずこれを実行してみましたが、エラーとなってしまいました。
C:\work\TestFX> gradlew エラー: メイン・クラスorg.gradle.wrapper.GradleWrapperMainが見つからなかったかロ ードできませんでした
Cygwinのbash上で実行すると
work$ ./gradlew ./gradlew: line 2: $'\r': コマンドが見つかりません ./gradlew: line 8: $'\r': コマンドが見つかりません ./gradlew: line 11: $'\r': コマンドが見つかりません ./gradlew: line 14: $'\r': コマンドが見つかりません ./gradlew: line 17: $'\r': コマンドが見つかりません ./gradlew: line 18: 期待してない token `$'{\r'' のあたりにシンタックスエラー '/gradlew: line 18: `warn ( ) {
Gradleを別途インストールして実行¶
Gradleダウンロードサイト からCurrent Stable Release(2014-06-05時点で1.12)のバイナリ(gradle-1.12-bin.zip)をダウンロードして展開(例:@C:\java\gradle-1.12
)します。
TestFX$ gradle build :
ビルド途中、GUIの自動テストが走ってマウスが持っていかれますので、マウスを触らないようにして完了を待ちます。
ビルド結果がどこにできたのか少し探し回ると
TestFX +-- subprojects +-- testfx-core +-- build | +-- classes | +-- dependency-cache | +-- libs | +-- reports | +-- tset-results | +-- tmp +-- screenshot1401926482118.png
といったものがありました。上述のlibsの下に、testfx-core-3.1.3.SNAPSHOT.jarがあります。
Javadocを生成する¶
TestFX$ gradle javadocjar :
libsの下に、testfx-core-3.1.3.SNAPSHOT-javadoc.jarが生成されます。
ソースファイルをJARにまとめる¶
TestFX$ gradle sourcejar :
libsの下に、testfx-core-3.1.3.SNAPSHOT-sources.jarが生成されます。
インストール¶
インストールにはビルドで生成したJARファイルのほか、TestFXが依存するライブラリが必要になります。依存するライブラリは、subprojects/tsetfx-core/testfx-core.gradleのdependencies項に定義されているので、それを使用します。
gradleでビルドしたときに、依存ライブラリがダウンロードされているのでそこから抜き出します。
TestFX のtestfx-core.gradleからdependencies定義を抜粋したものを次に示します。
dependencies {
compile 'com.google.guava:guava:14.0.1'
compile('junit:junit:4.11') {
exclude group: 'org.hamcrest', module: 'hamcrest'
}
compile 'org.hamcrest:hamcrest-all:1.3'
compileOnly project.files(project.jfxrtLocation)
testCompileOnly project.files(project.jfxrtLocation)
}
必要なものは、次となります。
- guava 14.0.1
- junit 4.11
- hamcrest-all 1.3
gradleが依存ライブラリをどこにダウンロードして使用しているのかを手探りしてみたところ、どうやら次のようです。
$HOME +-- .gradle +-- caches +-- modules-2 +-- files-2.1 +-- com.google.guava | +-- guava | +-- 14.0.1 | +-- 69e2f4...1ad4 | +-- guava-14.0.1.jar +-- junit | +-- junit | +-- 4.11 | +-- 4e031b...4ee0 | +-- junit-4.11.jar +-- org.hamcrest +-- hamcrest-all +-- 1.3 +-- 63a21e...8d5a +-- hamcrest-all-1.3.jar
Windowsの場合¶
C:\Program Files\Java ディレクトリの下に、TestFX-3.1.3ディレクトリを作成し、そこへ必要なJARファイルを配置することにします。