使用Robolectric在两个(或更多)Android版本上运行Android测试

时间:2014-10-21 12:56:21

标签: android testing junit robolectric

我正在处理Android代码,其中包括两个Android版本之间的区别。

我写了测试来运行代码。我使用的是Robolectric。

我找到了一个SO答案,说明了如何配置Robolectric用于运行测试的版本:
Does Robolectric support API level?
但是这样我就必须复制测试并使用不同的注释(或者更确切地说是在私有方法中使用测试代码并创建两个调用私有方法的新公共测试方法 - 但我已经有数百个测试,所以这将是很多工作。)

有没有办法告诉Robolectric两次运行测试,每次运行都有不同的Android版本?

1 个答案:

答案 0 :(得分:2)

我知道你的答案是在一年前发布的,但我遇到了同样的问题,我在网上找不到答案。

我找到了Robolectric 3.0的解决方案:你可以使用班级MultiApiRobolectricTestRunner。例如:

@RunWith(MultiApiRobolectricTestRunner.class)
@Config(constants = BuildConfig.class, manifest=Config.NONE, sdk = {16, 19, 21})
public class MyTestCase extends TestCase {

    @Test
    public void test1ToRunOnMultipleApis(){
        // My test
    }
}

方法test1ToRunOnMultipleApis将被测试3次:使用API​​ 16,19和21。

希望这可以提供帮助;)