Unterstützt Robolectric API-Ebene?
Habe ich einige Tests, die ich laufen möchte mit Robolectric, ich benutze die 2.3-SNAPSHOT als meine APP nutzt die ActionbarCompat ich brauchte, um 2.3-SNAPSHOT-Version, da Robolectric nicht finden konnte, die AppCompat-Themen vor. Also richte ich den Classpath in Eclipse und ich am Ende mit diesem:
java.lang.UnsupportedOperationException: Robolectric does not support API level 9, sorry!
at org.robolectric.SdkConfig.<init>(SdkConfig.java:24)
at org.robolectric.RobolectricTestRunner.pickSdkVersion(RobolectricTestRunner.java:288)
at org.robolectric.RobolectricTestRunner.getEnvironment(RobolectricTestRunner.java:264)
at org.robolectric.RobolectricTestRunner.access$100(RobolectricTestRunner.java:57)
at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:186)
at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:172)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Manifest von meinem Test-Projekt ist wie folgt:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.vendor.test"
android:versionCode="1"
android:versionName="1.0">
<application>
<uses-library android:name="android.test.runner" />
</application>
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="19" />
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.vendor" />
</manifest>
Ich beschwert sich immer über die API-Ebene, egal, was ich benutze.
Jemand habe diese arbeiten ?
Kommentar zu dem Problem - Öffnen
haben Sie versucht, ändern der miniumum-sdk 8 und sehen?
InformationsquelleAutor der Frage Kitesurfer | 2013-12-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Update: Die Anmerkung ist jetzt
@Config(sdk = 18)
(oder@Config(sdk = Build.VERSION_CODES.JELLY_BEAN_MR2)
) und die Eigenschaften der genannten Datei im link ist jetztrobolectric.properties
.Original Antwort:
Sie können die
@Config
annotation zu haben Robolectric emulieren einer SDK-version. Sie können diese :Dies ist auch möglich, über eine Datei-wie bereits erwähnt hier
Nicht sicher, was es bedeutet, für Ihre KitKat-spezifische tests, aber zumindest der andere sollte funktionieren.
InformationsquelleAutor der Antwort Saad Farooq
Bei Menschen wie mir, noch den Besuch der link für die ähnlichen Fehler,
@Config(emulateSdk = )
nicht funktioniert jetzt.Seine geändert sdk--
@Config(constants = BuildConfig.class, sdk=21)
Für mich, ich wurde immer Fehler mit target-version 22,
und so habe ich es emuliert bis 21.
InformationsquelleAutor der Antwort Nicks
Laut SdkConfig.java, Roboelectric unterstützt nur die folgenden Versionen und API-levels:
Sind Sie sicher, dass Sie versucht haben, diese?
InformationsquelleAutor der Antwort James Muranga