我有一个带有大约20个方法(测试用例)的测试用例文件,它扩展了ActivityInstrumentationTestCase2。我需要编写一个只调用选定的测试用例方法的套件,我知道在junit中有一个接受要执行的方法的方法
suite.addTest( new AllTestCases("testcase1"));
在android机器人中有没有类似的方法呢?如果是的话,请帮我解决这个问题。感谢。
答案 0 :(得分:1)
您无法像new AllTestCases("testcase1");
那样进行调用,因为所有Android相关的测试类都继承自AndroidTestCase
或InstrumentationTestCase
,并且这些类都没有公开将字符串作为字符串的构造函数参数。
您可以查看android.test.suitebuilder.TestSuiteBuilder
,但即使这个类不允许运行单独的测试方法,它也接受包级别的测试。
使用Android测试注释(例如@SmallTest
,@MediumTest
,@LargeTest
等等,您可能会有一些运气来实现目标。这些将允许您仅使用指定的带注释的方法来定位以下命令:
adb shell am instrument -w -e size <small|medium|large> com.youproject.test/android.test.InstrumentationTestRunner
最后,可以直接从eclipse中定位单个测试方法或类。
答案 1 :(得分:1)
直接从命令行运行单个测试用例:
adb shell am instrument -w -e class
&lt; Test-Class-With-Package-Name &gt; #
&lt; 测试 - 方法-名称 强>&GT; &LT;的 包名-OF-试验应用 强>&GT; /
&LT;的 仪表-名称定义的多功能清单< / EM> 强>&GT;
示例:强>
adb shell am instrument -w -e class com.myapp.test.ActivityFragmentTest#testLogin com.myapp.test/android.test.InstrumentationTestRunner
答案 2 :(得分:0)
您可以使用“adb shell am instrument”命令的“-e”参数以编程方式运行各个测试用例。例如,对于'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