2011-10-21 3 views
5

ServiceTestCase를 확장하는 테스트 사례를 실행할 수 없습니다. 그들은 단지 실행되지 않은 오류가 없습니다.실행할 Android ServiceTestCase를 가져올 수 없습니다.

AndroidTestCase를 확장 한 다른 테스트 사례가 실행됩니다.

내가 서비스를 포함하는 안드로이드 라이브러리를 다음과 같이

프로젝트는 설정됩니다. 그것은 다음과 같이 매니페스트 파일은 다음과 같습니다

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.something.android" 
    android:versionCode="1" 
    android:versionName="1.0"> 
<uses-sdk android:minSdkVersion="9"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<application> 
    <service android:name=".ExampleService" 
     android:exported="false" 
    android:process=":example_service"> 
    </service> 
</application> 
</manifest> 
안드로이드 도서관 프로젝트는 (안드로이드 도구를 사용하여 만든) 폴더 테스트에서 테스트 프로젝트

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.something.android.tests" 
     android:versionCode="1" 
     android:versionName="1.0"> 
<application> 
    <uses-library android:name="android.test.runner" /> 
</application> 
<instrumentation android:name="android.test.InstrumentationTestRunner" 
       android:targetPackage="com.something.android.tests" 
       android:label="Tests for com.something.android"/> 
</manifest> 
을 다음과 같이

이는 AndroidManfiest.xml을 포함을 포함

tested.project.dir = .. android.library.ref :

또한 포함하는 테스트 프로젝트의 build.properties이 erence.1 = ..

개미 런 테스트를 실행하여 테스트를 실행합니다.

ServiceTestCase 테스트를 실행하려면 무엇을해야합니까?

미리 감사드립니다.

답변

11

ServiceTestCase에 대한 기본 생성자를 제공했는지 확인하십시오. 이클립스가 생성하는 것은 적절하지 않을 수 있습니다.

public class MyServiceTestCase extends ServiceTestCase<MyService> { 

    public MyServiceTestCase(Class<MyService> serviceClass) { 
    super(serviceClass); 
    } 
    ... 
} 

안드로이드를 JUnit MyServiceTestCase를 인스턴스화 할 수 없습니다, 그러나 불평하지 않았고, 나는 단지 어떤 테스트 케이스가 어디에서 실행 볼 수 있습니다 : 예를 들어, 내 경우에는 Eclipse는 나를 위해 생성.

Thefore 나는 다음과 생성자를 대체하고, 멋지게 일 :

public class MyServiceTestCase extends ServiceTestCase<MyService> { 

    public MyServiceTestCase() { 
    super(MyService.class); 
    } 
    ... 
} 

는 당신을 위해 작동 바랍니다.

+0

귀하의 조언을 따르지 만 여전히이 오류가 발생합니다. http://stackoverflow.com/questions/33311533/how-to-correctly-use-android-test-servicetestcase를 참조하십시오. – likejiujitsu

0

허용되는 대답이 더 이상 작동하지 않습니다. ActivityInstrumentationTestCase2 또는 ServiceTestCase 같은

테스트 케이스는 ActivityTestRule 또는 ServiceTestRule 찬성 을 사용되지 않습니다.

ATSL link

그들이 실제 문서를 업데이트하는 것을 잊었다 보인다.

관련 문제