Android 的标准完全支持通过目标build.xml
在设备和模拟器上执行功能测试用例。test
但是这个目标总是执行一个测试项目中的所有测试用例;出于调试原因,我如何指示它只运行一个测试用例?
问问题
1347 次
3 回答
2
您可以使用adb shell "start instrument -w -e class package_name/class_name package_name/android.test.InstrumentationTestRunner"
于 2012-12-17T08:13:25.853 回答
0
我创建了自己的目标,custom_rules.xml
从 user674199 的回答中抽象了一点:
<target name="test-single" depends="-test-project-check" description="Runs a single test case, given with -DclassToTest=package.path.to.Class">
<run-tests-helper>
<extra-instrument-args>
<arg value="-e" />
<arg value="class" />
<arg value="${classToTest}" />
</extra-instrument-args>
</run-tests-helper>
</target>
这很好地满足了我的目的。
于 2012-12-18T11:59:27.877 回答
0
托马斯的回答有点过时,或者因为错误而无法正常工作:
testSingle:
[echo] Running tests ...
[exec] /system/bin/sh: ${test.runner}: bad substitution
如果您test
在 Android SDK 中看到原始目标,build.xml
您会看到之前设置了一些其他必需的属性,所以这对我来说是一个工作目标:
<!-- custom test target to perform specific test only -->
<target
name="testSingle"
depends="-test-project-check"
description="Runs a single test case, given with -DtestClass=package.path.to.Class">
<property name="test.runner" value="android.test.InstrumentationTestRunner" />
<property name="tested.project.absolute.dir" location="${tested.project.dir}" />
<!-- Application package of the tested project extracted from its manifest file -->
<xpath input="${tested.project.absolute.dir}/AndroidManifest.xml"
expression="/manifest/@package" output="tested.project.app.package" />
<run-tests-helper>
<extra-instrument-args>
<arg value="-e" />
<arg value="class" />
<arg value="${testClass}" />
</extra-instrument-args>
</run-tests-helper>
</target>
这是我的运行方式:
蚂蚁仪器testSingle -DtestClass=com.company.tests.SomeTest
com.company.tests.SomeTest
完整的测试类名称在哪里。
于 2016-06-30T06:42:53.087 回答