0

我是 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异常在哪里?

4

2 回答 2

1

对于 Robolectric,您不应扩展 InstrumentationTestCase。

于 2014-07-24T20:12:51.810 回答
0

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

file:///Users/gburanov/code/mobile/Medoo.Android/app/build/test-report/debug/index.html
于 2014-07-26T07:40:29.327 回答