Android Studio 3.0 Beta2
classpath 'com.android.tools.build:gradle:3.0.0-beta3'
testCompile 'org.robolectric:robolectric:3.4.2'
La classe de test que j'utilise ne s'exécute pas :
@Config(constants = BuildConfig.class, sdk = Build.VERSION_CODES.LOLLIPOP)
@RunWith(RobolectricTestRunner.class)
public class RecipeAdapterTest {
private MainActivity activity;
@Before
public void setup() {
activity = Robolectric.setupActivity(MainActivity.class);
/* Also tried this same Error
activity = Robolectric.buildActivity(MainActivity)
.create()
.resume()
.get();
*/
}
@Test
public void testActivityShouldNotBeNull() {
assertThat(activity, is(notNullValue()));
}
}
Voici la trace de la pile de l'erreur :
android.content.res.Resources$NotFoundException: String resource ID #0x7f0c0020
at android.content.res.Resources.getText(Resources.java:274)
at android.content.res.Resources.getString(Resources.java:360)
at android.content.Context.getString(Context.java:376)
at org.robolectric.shadows.ShadowActivity.getActivityTitle(ShadowActivity.java:100)
at org.robolectric.shadows.ShadowActivity.callAttach(ShadowActivity.java:110)
at org.robolectric.android.controller.ActivityController.attach(ActivityController.java:56)
at org.robolectric.android.controller.ActivityController.of(ActivityController.java:25)
at org.robolectric.Robolectric.buildActivity(Robolectric.java:98)
at org.robolectric.Robolectric.buildActivity(Robolectric.java:94)
at org.robolectric.Robolectric.setupActivity(Robolectric.java:102)
at me.androidbox.busbybaking.adapters.RecipeAdapterTest.setup(RecipeAdapterTest.java:63)
Dans le Edit Configurations
J'ai réglé le Working Directory
a $MODULE_DIR$
Merci beaucoup pour toute suggestion.
0 votes
Vous voyez la même erreur lorsque vous l'exécutez à partir de la ligne de commande et de gradle ?
0 votes
Cela fonctionne si j'ouvre le projet dans Android Studio 2.3.3 et que j'utilise gradle version 2.3.3 et que je définis jackOptions { enabled true } et compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }.
0 votes
jack
est déprécarisé. Si vous n'effectuez pas vos modifications dans lesbuild.gradle
pouvez-vous l'exécuter avec succès depuis la ligne de commande ?0 votes
Je suis revenu à la version AS 3.0. J'ai exécuté le test sur la ligne de commande
./gradlew test
et j'obtiens le même problème que précédemmentNotFoundException
0 votes
Utilisez-vous macOS ou Windows ?
0 votes
@sarkar J'utilise Linux 26 fedora 26
1 votes
androidstudio.googleblog.com/2017/06/
0 votes
Je n'utilisais pas Robolectric. Cela se produisait parce que j'obtenais un contexte avec
InstrumentationRegistry.getInstrumentation().context
. Une fois que j'ai remplacé.context
con.targetContext
l'exception a disparu.