2012-05-06 23 views
0

今、私はコンセプトをテストし、ロードブロッキングで作業する2番目のサンドボックスプロジェクトを維持しています。しかし、これは非常に効率的ではありません、私は多くのコードを複製する必要があり、私のゲームの耐久性のある回帰テストのセットを維持することができません。PlayNフレームワークでは、プロジェクトに単体テストを含めるにはどうすればよいですか?

私はプロジェクト内で単体テストのフォルダを持っていますが、開発が行われるコアブランチでは利用できないプラットフォーム固有の実装に依存しているため、フレームワーク自体のコンポーネントをテストすることはできません。

私はPlayNフレームワークのset of testsを見つけました。自分のプロジェクトをテストするためにこれらを活用することは可能ですか? 1つのプロジェクトに2つのGameクラスを含めることは可能ですか?

私はこの質問がhereに提起されたのを見るが、本当に満足のいく回答は得られなかった。

答えて

4

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ウィンドウのインストール。

+0

ありがとうございました。私はそれを試してみましょう。私のユニットテストで特に使用したかったJSONクラスです。 – klenwell

関連する問題