【发布时间】:2013-02-22 05:54:57
【问题描述】:
当我在 JUnit 3.x 中创建参数化测试用例时,我通常会使用类似的东西创建一个 TestSuite
public static Test suite() {
TestSuite s = new TestSuite();
for (int i = MIN; i < MAX; ++i) {
s.addTest(new MyTest(i));
}
}
从桌面命令行运行 JUnit 时,会正确调用此 suite() 方法。当我用我的 Android 测试项目尝试这个时,测试没有运行。如何让我的测试在模拟器上运行?还是有其他方法可以为 Android 创建参数化测试?
更多想法:
我通常使用命令行运行测试:
adb shell am instrument -w [-e class <fully qualified test class name>[#<test method name>()]] <Android package name>/android.test.InstrumentationTestRunner
这允许我从我的测试套件中选择要运行的测试。理想情况下,我也想以这种方式运行参数化测试。 @Appu 评论中的链接描述了构建一个运行 JUnit 测试的单独应用程序。作为其中的一部分,这个应用程序有一个自定义的 TestRunner。我很可能会借用这些想法来创建一个可以用来代替android.test.InstrumentationTestRunner 的TestRunner。对于一项不常见的任务,这似乎需要做很多工作。如果 Android API 中已经有类似的解决方案,我不想重新发明轮子。有谁知道这样的事情?此外,其他替代解决方案也会有所帮助。
没关系,看起来@dtmilano 已经发布了这个作为答案...
【问题讨论】:
-
This 可能会有所帮助。这是我最喜欢的博客之一。
-
@Appu 谢谢。随意张贴作为答案。你至少应该为它投票;-)
-
你的问题+1也是如此。但如果它真的帮助您解决问题,我可以将其发布为答案。
-
@Appu 当我花时间更彻底地阅读它时,我会告诉你的 ;-)
-
好的。很好。这是你忘记问的问题;)希望其他人能回答以确切的方式解决它。这就是为什么我没有将其发布为答案。
标签: android unit-testing testing junit