非常抱歉,如果我有所重复,但我找不到任何关于这个问题的信息。
我知道我可以使用JUnit来创建简单的单元测试,但我无法在android / iOS设备上运行它。如果我理解正确,我可以使用仪器化单元测试,但它们仅适用于android平台。在这种情况下,我无法测试来自libGDX核心的函数(我错了吗?)。那么,我想知道如何在设备上运行我的测试?
非常抱歉,如果我有所重复,但我找不到任何关于这个问题的信息。
我知道我可以使用JUnit来创建简单的单元测试,但我无法在android / iOS设备上运行它。如果我理解正确,我可以使用仪器化单元测试,但它们仅适用于android平台。在这种情况下,我无法测试来自libGDX核心的函数(我错了吗?)。那么,我想知道如何在设备上运行我的测试?
private MyGameHeadlessApplication application;
@Before
public void setUp() throws Exception {
HeadlessApplicationConfiguration config = new HeadlessApplicationConfiguration();
config.renderInterval = 1F / 30F;
application = new MyGameHeadlessApplication();
new HeadlessApplication(this.application , config);
}
为了测试依赖于libGDX的小部件,有一个非常方便的库可用:gdx-testing项目包含一个GdxTestRunner,它将您的测试封装在HeadlessApplication
中,并允许您像这样做(来自gdx-testing示例):
@RunWith(GdxTestRunner.class)
public class MySuperTestClass {
@Test
public void bestTestInHistory() {
// libgdx dependent code runs here
}
}
build.gradle
中为测试设置workingDir
来解决这个问题。当然,还要确保具有所有必需的依赖项(例如,如果您需要在测试中使用box2d,则需要安装)。在我的设置中,我将所有测试都放在“core”项目中:project(":core") {
apply plugin: "java"
test {
project.ext.assetsDir = new File("./assets")
workingDir = project.ext.assetsDir
}
dependencies {
testCompile "com.badlogicgames.gdx:gdx-backend-headless:$gdxVersion"
testCompile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
testCompile "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-desktop"
// ... more dependencies here ...
另请参阅 使用libgdx的单元测试类。
HeadlessApplicationConfiguration
开始一个HeadlessApplication
,但我还没有在足够复杂的项目中进行足够深入的研究。 - Ross Taylor-Turner