无法测试libgdx项目

时间:2014-05-08 12:15:12

标签: java unit-testing gradle libgdx junit4

我正忙着我的项目团队使用libgdx编写跨平台游戏。我正在尝试进行单元测试,目前我刚刚导入了类,这里是我的代码:

import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;

import com.badlogic.gdx.InputMultiplexer;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.math.Vector;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.physics.box2d.Box2DDebugRenderer;
import com.badlogic.gdx.physics.box2d.World;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.mygdx.game.*;
import com.mygdx.game.input.TouchInputProcessor;



public class CarTest {
Car car;
World world;
Vector2 vector;



@Before
public void setUp() throws Exception {
    vector=new Vector2(0.0f, 0.0f);
    try{
    this.world = new World(vector, true);

    this.car = new Car(world, 2, 4, new Vector2(10, 10), (float) Math.PI,
            60, 20, 60);
    }
    catch(Exception e){
        e.getMessage();
    }

}

我们在运行junit时遇到以下错误:

java.lang.ExceptionInInitializerError
at CarTest.setUp(CarTest.java:30)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)


Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Unable to read file for extraction: gdx-box2d64.dll

如何为测试工作设置我的设置功能?或者更好的是如何对libgdx项目进行单元测试?

2 个答案:

答案 0 :(得分:0)

在项目gradle脚本中通过testCompile添加依赖项。

testCompile "com.badlogicgames.gdx:gdx:$gdxVersion"
testCompile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
testCompile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
testCompile "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-desktop"

答案 1 :(得分:0)

我遇到了同样的问题,我的问题是我只将 box2d 依赖项添加到桌面项目,而不是核心。如果您不仅有桌面版本,而且还有可能需要自己的 box2d 库的 android 版本,那么这很有意义。

无论如何,我只是在我的核心中添加了 box2d。如果您有一个针对如上所述的各种平台的设置,您可以像 Tejay 描述的那样,使用 testcompile 将 box2d 添加到核心测试中。

testCompile "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-desktop"