unit-testing - Robolectric + 艾玛 : Initialization Error

标签 unit-testing robolectric emma

我使用 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/

相关文章:

unit-testing - 使用 Robolectric 和 PowerMock 进行 Realm 单元测试,代码覆盖率为零

unit-testing - 在不运行 @SpringBootApplication 的情况下测试 Spring Boot 服务

android - Robolectric 不支持 API 级别 27

java - Robolectric 未找到包含 org.robolectric.ShadowsAdapter 的阴影模块

javascript - 防止Jasmine测试expect()在JS执行完成之前解析

android - 如何使用gradle ktx为Android robolectric测试设置-noverify选项?

java - JaCoCo 报告在 Jenkins : java. lang.ArrayIndexOutOfBoundsException 中失败

Android/Emma coverage.ec 输出无法导入 EclEmma

javascript - Jasmine 有 createSpy() 返回模拟对象