随着PlayN框架,我怎么能在自己的项目单元测试?(With PlayN framework, ho

2019-09-17 01:32发布

现在,我已经保持了第二沙箱项目,我测试的概念,并通过路障工作。 但是,当我最终不得不重复大量的代码,但无法保持持久的回归测试集为我的比赛,这是不是很有效。

我有我的项目中的单元测试的文件夹,但它们依赖于特定平台的实现是不可用的核心分支发展地方发生是不可能的框架本身的测试组件。

我已经找到PlayN框架的一套测试 。 是否有可能利用这些测试自己的项目? 是否有可能包括一个项目中的两个游戏类?

我看到这个问题,有人提出在这里 ,但它从来没有真正得到一个满意的答复。

Answer 1:

你不能轻易编写的对抗PlayN支持不同的后端运行单元测试。 显然,这将是相当给Android手机或iOS设备上自动运行单元测试是一个挑战。 但是,您可以编写针对Java后端运行很容易单元测试。

我一般构造我的项目,我的核心子模块有一个test的依赖play n-java ,然后我在运行使用我的单元测试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)构建服务器上运行单元测试,你需要确保构建服务器与梅萨GL库一起安装一具无头X Windows安装。



文章来源: With PlayN framework, how can I include unit tests in my project?