PlayN がサポートするさまざまなバックエンドに対して実行される単体テストを簡単に作成することはできません。明らかに、Android フォンまたは iOS デバイスで単体テストを自動的に実行するのは非常に困難です。ただし、Java バックエンドに対して実行する単体テストは非常に簡単に作成できます。
私は通常、コア サブモジュールがtest
依存するようにプロジェクトを構成し、バックエンドplay n-java
を使用して単体テストを実行します。playn-java
ビジュアル コードの単体テストが難しいため、通常、PlayN と直接やり取りするものはあまりテストしませんが、これはかなりうまく機能することがわかりました。私が単体テストするものは、ほとんど PlayN を呼び出しません。
HTML5 バックエンドに対して単体テストを行うこともできますが、非常に遅いです。HTMLUnitを見てください。
[編集: この質問に繰り返し答えているので、Java バックエンドに対して単体テストを実行するようにプロジェクトを構成する方法について、ここに説明を追加します]
playn-java をcore/pom.xml
テスト依存関係として追加します。
<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()
これで、単体テストでサービスにアクセスできるようになり、サービスも機能します。
次のように、Maven からテストをコンパイルして実行します。
mvn test
(Unix) ビルド サーバーで単体テストを実行する必要がある場合は、ビルド サーバーに Mesa GL ライブラリと共にヘッドレス X Windows インストールがインストールされていることを確認する必要があります。