2011-11-21 76 views
0

我有一个测试用例文件,它包含大约20个扩展了ActivityInstrumentationTestCase2的方法(测试用例)。我需要写这将调用仅选择的测试方法一套房,我知道在JUnit中有被执行机器人测试套件问题

suite.addTest(new AllTestCases("testcase1")); 

它接受的方法一种方法是不是也有类似的方式做的东西,在Android的robotium?如果是的话,请帮我解决这个问题。谢谢。

回答

1

您不能拨打电话,如new AllTestCases("testcase1");,因为所有与Android相关的测试类都从AndroidTestCaseInstrumentationTestCase继承,并且这两个类都没有公开将字符串作为参数的构造函数。

你可以看看android.test.suitebuilder.TestSuiteBuilder,但即使这个类不允许运行单个测试方法,它也会接受包级别的测试。

你可能有一些运气使用Android的测试注释实现自己的目标,如@SmallTest@MediumTest@LargeTest等,这些可以让你使用follwing命令只针对指定的注解的方法:

adb shell am instrument -w -e size <small|medium|large> com.youproject.test/android.test.InstrumentationTestRunner 

最后,它可能直接从eclipse中针对单个测试方法或类。

0

您可以用“-e”参数以编程方式运行单个测试用例到“adb shell am instrument”命令。例如,对于'com.foo.bar.FooTest'中的'testFoo()'方法,您可以运行:

adb shell am instrument -w \ -e“class com.foo.bar.FooTest#testFoo “\ com.foo.bar.test/android.test.InstrumentationTestRunner

http://developer.android.com/guide/developing/testing/testing_otheride.html

1

要直接从命令行运行单个测试用例:

adb shell am instrument -w -e class < 试验类与 - 包名称># < 试验方法名> < 包名称 - 中试验应用>/ < 仪表-名称定义的多功能清单>

示例:

adb shell am instrument -w -e class com.myapp.test.ActivityFragmentTest#testLogin com.myapp.test/android.test.InstrumentationTestRunner