2016-11-24 86 views
1

我已經爲使用Junit,Mockito,PowerMock和Robolectric的Android編寫了單元測試,並使用Robolectric測試運行器通過命令行在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 { 
    .. 
}