プロジェクト

全般

プロフィール

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ファイルを配置することにします。


ほぼ10年前に更新