我使用 Junit、Mockito、PowerMock 和 Robolectric 编写了 Android 单元测试,并使用 Robolectric Test Runner 通过命令行在 Linux 环境中运行这些测试。 我想使用 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
请有人帮我解决这个问题。谢谢
最佳答案
Robolectric 附带的初始化错误可以通过测试类上的注释 org.robolectric.annotation.internal.DoNotInstrument 来解决。喜欢:
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class)
@DoNotInstrument
public class MyActivityTest {
..
}
关于unit-testing - Robolectric + 艾玛 : Initialization Error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40779762/