你不能很容易地編寫那些對抗PlayN支持不同的後端運行單元測試。很明顯,在Android手機或iOS設備上自動運行單元測試將是一項相當大的挑戰。但是,您可以很容易地編寫針對Java後端運行的單元測試。
我通常構造我的項目,以便我的核心子模塊具有對play n-java
的test
依賴關係,然後使用playn-java
後端運行我的單元測試。我發現這種方法工作得相當好,儘管我通常不會直接測試那些與PlayN直接交互的東西,因爲很難單元測試可視代碼。我單元測試的事情很少發生PlayN呼叫。
您還可以對HTML5後端單元測試,但它是reaaaaally緩慢。看看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)運行單元測試構建服務器,你需要確保構建服務器有一個無頭X Window安裝與Mesa GL庫一起安裝。
謝謝。我會試一試。這是我特別想在我的單元測試中使用的JSON類。 – klenwell