2016-11-24 5 views
1

Я написал модульные тесты для Android с помощью Junit, Mockito, PowerMock и Robolectric и использовал Robolectric Test Runner для запуска этих тестов в среде Linux через командную строку. Я хочу сгенерировать отчет о покрытии с помощью командной строки Emma.Robolectric + Emma: Ошибка инициализации

Я столкнулся с приведенной ниже ошибкой.

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 

Пожалуйста, помогите мне с этим. Спасибо

ответ

1

Ошибка инициализации, которая приходит с Robolectric, может быть решена с помощью аннотации org.robolectric.annotation.internal.DoNotInstrument на вашем тестовом классе. Нравится:

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

public class MyActivityTest { 
    .. 
} 
Смежные вопросы