在Android模拟器或设备上运行Java SE库的JUnit测试

时间:2014-01-21 14:30:24

标签: java android maven junit

我有一个简单的库,可以在Java SE上编译和运行,并使用Maven构建。测试类是JUnit测试用例(目前是4.x,没有问题可以降级到3.x)。

该库可以在Android中使用,但不依赖android.*。 在模拟器或Android设备上运行JUnit测试是绝对必要的,因为JDK(Java SE和Android / Harmony)存在一些细微差别。

我不想将测试用例复制到Hello-Testing Android项目,而是重用现有的类。

有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:1)

要在Android模拟器上执行测试,您需要创建一个测试项目(这只能使用JUnit 3),这取决于普通的Android项目。

我建议您在库测试中添加一个测试套件,其中包含对库的所有测试的调用。创建一个简单的Hello Word Android项目。为此项目创建Android测试项目。然后,您可以从Android测试项目中调用新创建的测试套件,而无需复制任何测试用例。你所要做的就是建立一些Wrapper项目。

答案 1 :(得分:0)

可能这不是最佳解决方案,但我设法测试在Android(模拟器或真实设备)中运行的库。您可以在DavidWebb上找到它。

public class DavidWebbAndroidTests extends TestSuite {
    public static Test suite () {
        return new TestSuiteBuilder(DavidWebbAndroidTests.class)
            .includeAllPackagesUnderHere()
            .build();
    }
}

需要注意的是,我必须扩展所有测试,以便它们出现在Android上。

希望有人会找到更好的解决方案,但至少它可行。