2012-10-23 2 views
6

Eclipse에서 별도의 명령 줄과 Eclipse에서 잠시 동안 성공적으로 실행 된 테스트 프로젝트가 있습니다. Jenkins를 사용하여 테스트를 실행하는 동안 표준 InstrumentationTestRunner가 Jenkins에서 지원하는 XML 형식으로 출력하지 않는 문제가 발생했습니다. 나는 사용자 정의 InstrumentationTestRunner를 사용하기 위해 인터넷에서 읽었습니다. 이것은 ADB를 사용하는 명령 행에서 작동하지만 Android Test Case로 실행할 때 Eclipse에서 실패합니다.Eclipse에서 사용자 정의 InstrumentationTestRunner를 사용하면 오류가 발생합니다.

내가 정의 계측 테스트 러너 (com.neenbedankt.android.test를) 다운로드하고 다음과 같이 AndroidManifest를에 추가 한

:

: 여기
<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.testedapplication.test" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="7" /> 

    <instrumentation 
     android:name="com.neenbedankt.android.test.InstrumentationTestRunner" 
     android:targetPackage="com.testedapplication" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <uses-library android:name="android.test.runner" /> 
    </application>  
</manifest> 

내가 이클립스에서 얻을 오류입니다

[테스트 프로젝트]가 테스트 실행을 위해 올바르게 구성되지 않았습니다. AndroidManifest.xml에서 instrumentation의 android.test.InstrumentationTestRunner에 대한 targetPackage 속성을 찾을 수 없습니다!

내가 targetPackage를 설정했는지 알 수 있습니다. 그래서 내가 무엇을 할 수 있는지 잘 모르겠습니다.

답변

12

AndroidManifest.xml에 두 계측을 모두 추가하십시오.

<instrumentation 
    android:name="android.test.InstrumentationTestRunner" 
    android:targetPackage="com.example.myapp" /> 

<instrumentation 
    android:name=".MyRunner" 
    android:targetPackage="com.example.myapp" /> 

다음 탐색기를 패키지화로 이동 -> $ (귀하의 테스트 Prject $) ->으로 실행 -> 실행 구성 -> 안드로이드의 JUnit 테스트 -> $ (귀하의 테스트 프로젝트) -> Instrumentation Runner를 선택하고 주자를 선택하십시오.

+2

나는 그것을 다시 시도, android.test.InstrumentationTestRunner 필요가없는 것 같습니다. 계측 러너 설정을 변경하면됩니다. –

+2

이봐, 나는 stackoverflow를 좋아해. –

0

전체 프로젝트 설정을 볼 수 없으므로 다음과 같은 몇 가지 체크리스트를 시도해 보겠습니다.

  1. Eclipse에 별도의 테스트 프로젝트가 있습니까? 소스 프로젝트의 매니페스트 파일이나 테스트 프로젝트의 매니페스트 파일에 위 도구 블록이 있습니까?

  2. use-library android : name = "android.test.runner"/ > 블록을 포함 시켰습니까?

  3. 당신은 < 응용 프로그램 > 블록 외부에서 테스트 프로젝트의 계측 블록을 넣어 않았고 <이 사용하는 라이브러리 테스트 프로젝트의 응용 프로그램 블록 내부 > 블록을?

  4. Eclipse에서 "새 프로젝트 -> Android 테스트 프로젝트"를 통해 테스트 프로젝트를 만들고 소스 코드를 추가 한 후 계측 클래스를 변경하려고 했습니까? 계측 클래스를 변경하지 않으면 작동합니까?

  5. "Run As - > Android JUnit test"를 실행하여 Eclipse에서 테스트를 실행하고 있습니까?

이미 모든 작업을 완료했다면 전체 AndroidManifest 파일을 붙여 넣으면 조금 더 명확 해지며 2 개의 별도 프로젝트가 있는지 여부를 알 수 있습니다.

+0

질문에 대한 답변을 원문으로 편집했습니다. 커스텀 테스트 러너로 전환하기 전에 커맨드 라인과 Eclipse에서 테스트가 진행되었습니다. 원래 질문에서 새 편집 내용을 확인하십시오. 감사. – SpecialEd

0

아, 지금까지 manifest 파일에 android.test.InstrumentationRunner 러너와 고객 테스트 러너를 설명하여 작동하도록 만들었습니다. 이클립스에서 실행하는 것은 android.test.InstrumentationRunner를 사용하고 커맨드 라인에서 실행하는 것은 ant 스크립트에서 설정 한 경우 커스텀 테스트 러너를 사용할 것으로 보인다.

1

이클립스가/android junit로 실행할 때 기본적으로 사용자 정의 러너를 선택하려면 - 단순히 매니페스트 파일의 순서를 전환하십시오. 처음이 맞는지 확인하십시오

<instrumentation 
android:name="*.Custom.TestRunner" 
android:targetPackage="com.*" /> 

<instrumentation 
android:name="*.InstrumentationTestRunner" 
android:targetPackage="com.*" /> 
관련 문제