【问题标题】:Unknown error when running robolectric运行 robolectric 时出现未知错误
【发布时间】:2014-09-16 11:40:44
【问题描述】:

我是 robolectric 的新手,我只想运行简单的测试。

我使用 Android Studio => Gradle

当我运行我的示例测试时

@RunWith(RobolectricTestRunner.class)
public class ExampleTest extends InstrumentationTestCase {

@Test
public void test() throws Exception {
    final int expected = 5;
    final int reality = 5;
    assertEquals(expected, reality);
}
}

使用渐变

 ./gradlew clean test --stacktrace

我遇到了异常

test.ExampleTest > 测试失败 java.lang.RuntimeException 引起:java.lang.NullPointerException 1 次测试完成,1 次失败 :app:testDebug 失败 FAILURE:构建失败并出现异常。 * 什么地方出了错: 任务“:app:testDebug”执行失败。 > 有失败的测试。请参阅报告:file:///Users/gburanov/code/mobile/Medoo.Android/app/build/test-report/debug/index.html * 尝试: 使用 --info 或 --debug 选项运行以获得更多日志输出。 * 例外情况是: org.gradle.api.tasks.TaskExecutionException:任务':app:testDebug'的执行失败。 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46) 在 org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35) 在 org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64) 在 org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) 在 org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42) 在 org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) 在 org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53) 在 org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) 在 org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:289) 在 org.gradle.execution.taskgraph.Abs​​tractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79) 在 org.gradle.execution.taskgraph.Abs​​tractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63) 在 org.gradle.execution.taskgraph.Abs​​tractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51) 在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:23) 在 org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:86) 在 org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29) 在 org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61) 在 org.gradle.execution.DefaultBuildExecuter.access $200(DefaultBuildExecuter.java:23) 在 org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67) 在 org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32) 在 org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61) 在 org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54) 在 org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:166) 在 org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:113) 在 org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:81) 在 org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:64) 在 org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33) 在 org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24) 在 org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:35) 在 org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)

如何找到真正的错误来源? Nullpoint 异常在哪里?

【问题讨论】:

    标签: android android-studio robolectric robolectric-gradle-plugin


    【解决方案1】:

    对于 Robolectric,您不应扩展 InstrumentationTestCase。

    【讨论】:

    • 那我应该扩展什么?
    • 你不必扩展任何东西。
    【解决方案2】:

    这应该是您获得更多失败细节的途径:

    file:///Users/gburanov/code/mobile/Medoo.Android/app/build/test-report/debug/index.html
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-20
      • 1970-01-01
      • 2023-03-12
      • 2012-01-06
      • 2016-03-04
      • 1970-01-01
      • 2021-10-04
      • 2012-12-09
      相关资源
      最近更新 更多