【发布时间】:2014-08-30 23:28:32
【问题描述】:
我的 Android Studio 项目中有一些普通的旧 Java 类和简单的 JUnit 测试。他们目前住在我的 Android 模块中。如果我将它们作为 Android 测试运行,它们可以通过,但它们真的很慢,因为它需要启动或连接到模拟器。
如果我尝试运行一个 JUnit 测试,我遇到了!!! JUnit version 3.8 or later expected JUnit 版本问题。这个answer 解释了如何解决这个问题。不幸的是,然后我点击了java.lang.NoClassDefFoundError: junit/textui/ResultPrinter,我不知道如何解决。
然后我尝试将我的 JUnit 测试移动到依赖于 Android 模块的单独 Java 模块中。一切都编译得很好。我添加了一个新配置来启动 JUnit 测试 (:MyJUnitTests:test),但测试失败并显示 package com.myproject.util does not exist。看起来类路径可能不包括依赖 Android 模块中的类。
有人知道如何解决这个类路径问题吗?我查看了很多相关的答案,但似乎没有一个对我有用。还是尝试将我的 JUnit 测试保留在他们自己的模块中只是一个坏主意?
如果我将普通 Java 类及其 JUnit 测试移动到一个完全独立的模块中(例如 here),我可以让 JUnit 测试快速运行并通过,并反转依赖关系,以便 Android 模块依赖于 Java 模块.这是首选的解决方案吗?
【问题讨论】:
标签: android unit-testing junit gradle android-studio