2011-10-21 7 views
5

Çalıştırmak için ServiceTestCase'i genişleten herhangi bir test vakası alamıyorum. Hatalar henüz yürütülmemiştir.Android ServiceTestCase'i çalıştıramazsınız

AndroidTestCase'i genişleten diğer sınama durumları çalıştırılıyor.

Ben bir hizmet içeren bir Android Kütüphanesi var şu şekildedir:

projeler kurulur. Bu şu şekilde tezahür dosyasıdır var:

<?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> 
Android Kütüphane Projesi (Android araçları kullanılarak oluşturulan) klasör testinde bir test projesi

<?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> 
aşağıdaki gibi

Bu AndroidManfiest.xml içeriyor içeriyor

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

Ben de içeren bir test projede bir build.properties var erence.1 = ..

Testler, ant temiz çalışma testleri yaparak yürütüyorum.

ServiceTestCase sınamasını çalıştırmak için ne yapmam gerekiyor?

Şimdiden teşekkürler.

cevap

11

ServiceTestCase için varsayılan bir kurucu sağladığınızdan emin olun. Sizin için bir Eclipse ürettiği uygun olmayabilir.

public class MyServiceTestCase extends ServiceTestCase<MyService> { 

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

Android JUnit MyServiceTestCase örneğini mümkün değildi, ama şikayet etmedi ve sadece hiçbir test durumları o nerede çalıştırmak görebiliyordu: Örneğin, benim durumumda Eclipse benim için oluşturdu.

karşılık veren ben aşağıdaki ile yapıcı yerini, ve o güzel çalıştı:

public class MyServiceTestCase extends ServiceTestCase<MyService> { 

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

sizin için çalışır Umut.

+0

Tavsiyenizi izledim ancak yine de bu hatayı aldım. http://stackoverflow.com/questions/33311533/how-to-correctly-use-android-test-servicetestcase adresine bakın. – likejiujitsu

0

Kabul edilen cevap artık benim için çalışmıyor. ActivityInstrumentationTestCase2 veya ServiceTestCase gibi

testcases ActivityTestRule veya ServiceTestRule lehine kaldırılmıştır.

ATSL link

Onlar gerçek belgeleri güncelleştirmek unuttum görünüyor.