Android 표준 build.xml
은 test
대상을 통해 장치 및 에뮬레이터에서 기능 테스트 케이스를 실행하기위한 완벽한 지원을 제공합니다. 그러나이 목표는 항상 테스트 프로젝트에서 모든 테스트 사례를 실행합니다. 디버깅을 이유로 하나의 테스트 케이스 만 실행하도록 어떻게 지시 할 수 있습니까?Android 개미 빌드 스크립트를 통해 단일 테스트 케이스를 실행하려면 어떻게해야합니까?
2
A
답변
2
당신은
0
adb shell "start instrument -w -e class package_name/class_name package_name/android.test.InstrumentationTestRunner"
내가 user674199의 대답에서 조금 추상화 custom_rules.xml
에 내 자신의 목표를 만들어 사용할 수 있습니다 꽤 잘 내 목적을 수행
<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>
합니다.
당신은 몇 가지 다른 필수 속성 전에 설정되어 있는지를 참조하면, 안드로이드 SDKbuild.xml
에 원래
test
대상이 표시되는 경우
testSingle:
[echo] Running tests ...
[exec] /system/bin/sh: ${test.runner}: bad substitution
그래서 여기에 있습니다 :
0
토마스의 대답은 약간은 더 이상 사용되지하거나 오류로 인해 작동하지 않습니다 나를 위해 작업 대상 :
: 여기ant instrument testSingle -DtestClass=com.company.tests.SomeTest
<!-- 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>
내가 그것을 실행하는 방법입니다
여기서 com.company.tests.SomeTest
은 전체 테스트 클래스 이름입니다.
나는이를 사용자 지정 대상으로 감쌌다. 감사! –