2016-11-24 3 views
1

J'ai écrit des tests unitaires pour android en utilisant Junit, Mockito, PowerMock et Robolectric et utilisé Robolectric Test Runner pour exécuter ces tests dans un environnement Linux via une ligne de commande. Je souhaite générer le rapport de couverture à l'aide de la ligne de commande Emma.Robolectric + Emma: Erreur d'initialisation

Je suis confronté à l'erreur ci-dessous.

1) initializationError(com.ex.test.1_UT) 
org.junit.runners.model.InitializationError 
at org.junit.runners.ParentRunner.validate(ParentRunner.java:346) 
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:74) 
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:55) 
at org.robolectric.RobolectricTestRunner.<init>(RobolectricTestRunner.java:84) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:31) 
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:24) 
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) 
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29) 
at org.junit.runner.Computer.getRunner(Computer.java:38) 
at org.junit.runner.Computer$1.runnerForClass(Computer.java:29) 
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) 
at org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:98) 
at org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:84) 
at org.junit.runners.Suite.<init>(Suite.java:79) 
at org.junit.runner.Computer.getSuite(Computer.java:26) 
at org.junit.runner.Request.classes(Request.java:69) 
at org.junit.runner.JUnitCore.run(JUnitCore.java:117) 
at org.junit.runner.JUnitCore.runMain(JUnitCore.java:98) 
at org.junit.runner.JUnitCore.runMainAndExit(JUnitCore.java:53) 
at org.junit.runner.JUnitCore.main(JUnitCore.java:45) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
t java.lang.reflect.Method.invoke(Method.java:606) 
at com.vladium.emma.rt.AppRunner$Invoker.run(AppRunner.java:655) 
at java.lang.Thread.run(Thread.java:745) 

FAILURES!!! 
Tests run: 1, Failures: 1 

S'il vous plaît, quelqu'un m'aider avec ceci. Merci

Répondre

1

L'erreur d'initialisation fournie avec Robolectric peut être résolue avec l'annotation org.robolectric.annotation.internal.DoNotInstrument dans votre classe de test. Comme:

@RunWith(RobolectricTestRunner.class) 
@Config(constants = BuildConfig.class) 
@DoNotInstrument 

public class MyActivityTest { 
    .. 
}