2012-12-17 1 views
2

Android 표준 build.xmltest 대상을 통해 장치 및 에뮬레이터에서 기능 테스트 케이스를 실행하기위한 완벽한 지원을 제공합니다. 그러나이 목표는 항상 테스트 프로젝트에서 모든 테스트 사례를 실행합니다. 디버깅을 이유로 하나의 테스트 케이스 만 실행하도록 어떻게 지시 할 수 있습니까?Android 개미 빌드 스크립트를 통해 단일 테스트 케이스를 실행하려면 어떻게해야합니까?

답변

2

당신은

+0

나는이를 사용자 지정 대상으로 감쌌다. 감사! –

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> 

합니다.

당신은 몇 가지 다른 필수 속성 전에 설정되어 있는지를 참조하면, 안드로이드 SDK build.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은 전체 테스트 클래스 이름입니다.