PlayNでサポートされているさまざまなバックエンドに対して実行される単体テストを簡単に書き込むことはできません。明らかに、Androidの電話機やiOSデバイスで単体テストを自動的に実行するのはかなり難しいことです。しかし、Javaバックエンドに対して実行する単体テストを簡単に書くことができます。
コアサブモジュールのサイズがtest
であるplay n-java
に依存するようにプロジェクトを構築してから、playn-java
バックエンドを使用して単体テストを実行します。私はこれが正常に動作することを発見しましたが、私は通常、PlayNと直接対話する多くのものをテストしませんが、ユニットテストのビジュアルコードは難しいからです。私が単体テストしたものはPlayNコールをめったに作らない。
また、HTML5バックエンドに対してユニットテストを行うこともできますが、それはかなり遅くなります。 HTMLUnitをご覧ください。
[編集:私は繰り返しこの質問に答えるよ以来、私は、Javaのバックエンドに対してユニットテストを実行するようにプロジェクトを設定する方法についてここで説明を追加します]
があなたのcore/pom.xml
にplayn-javaの追加テスト依存関係として:
<dependency>
<groupId>com.googlecode.playn</groupId>
<artifactId>playn-java</artifactId>
<version>${playn.version}</version>
<scope>test</scope>
</dependency>
はまたあなたのcore/pom.xml
にこれを追加します。
<build>
<plugins>
<plugin>
<groupId>com.googlecode.mavennatives</groupId>
<artifactId>maven-nativedependencies-plugin</artifactId>
<version>0.0.6</version>
<executions>
<execution>
<id>unpacknatives</id>
<phase>generate-resources</phase>
<goals> <goal>copy</goal> </goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12</version>
<configuration>
<argLine>-Djava.library.path=${basedir}/target/natives</argLine>
</configuration>
</plugin>
</plugins>
</build>
はユニットテストを実行するときにLWJGLを正しく設定します。
次に、あなたのユニットテストにこれを追加します。
static {
JavaPlatform.register();
}
今すぐあなたのユニットテストでPlayN.foo()
サービスにアクセスすることができますし、彼らもうまくいきます。あなたがビルドサーバーが持っていることを確認する必要があります、
mvn test
を使用すると、サーバーを構築(UNIX)上のユニットテストを実行する必要がある場合:
あなたはコンパイルし、そのようにMavenからテストを実行しますMesa GLライブラリと共にインストールされたヘッドレスXウィンドウのインストール。
ありがとうございました。私はそれを試してみましょう。私のユニットテストで特に使用したかったJSONクラスです。 – klenwell