问题标签 [robolectric-gradle-plugin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gradle - 在 build.gradle 中配置 Robolectric
谁能解释我如何让 robolectric 在 android studio 中与 gradle 一起工作?我用不同的配置尝试了很多次,但没有任何效果。也许这是一个简单的问题,但我现在不知道该怎么做。我使用 android studio 1.1.0 和 gradle 2.2.1
android - 一些 Robolectric 测试在一起运行但单独通过时失败
我使用的是 Android Studio 1.2,Robolectric 3.0-rc2。
我有两个测试类,一个MotdTest
使用一种测试 POJO json 序列化和反序列化的测试方法调用。另一个叫做UserInfoTest
,它包含 4 个测试方法,用于测试我设置的用户信息SharedPreferences
。如果我UserInfoTest
单独运行,所有 4 种测试方法总是通过。但是,如果我运行所有测试,则测试MotdTest
成功,但两种方法UserInfoTest
总是失败。我现在通过调用从命令行运行./gradlew test
有谁知道为什么我运行所有测试时我的一些测试都失败了?在我的 UserInfoTest 中,我确实有一个带@After
注释的方法,我通过在SharedPreferences.Editor
.
用户信息测试:
testOnSignIn()
失败,assertThat(6, equalTo(prefs.getAll().size()));
因为 的大小prefs
为 0。
并且testIsSignedIn()
失败了assertThat(UserInfo.isSignedIn(), is(false));
用户信息:
App
是一个Application
子类并且App.getInstance()
是一个单例。
MyRoboRunner:这是一个修改版本,因为我在 mac 上,也因为我在我的项目中以 API 22 为目标,但 robolectric 还不支持,所以我针对 API 21 运行测试。
android - 如何使用 Robolectric 3.0 从服务器测试 ListView 项目
我正在使用 Robolectric 测试我的应用程序。在我的应用程序中,我想检查列表视图该视图中是否有任何项目。并从列表视图中测试 onClickItem。列表视图项目是来自服务器的动态。每次启动活动时,它都会从服务器请求。但是,Robolectric 没有等待响应,所以列表视图上的适配器仍然为 Null。
这是来自 Robolectric 测试的错误。
如何让 Robolectric 代码等待来自服务器的响应。所以listview适配器不再为null,可以测试listview了。
java - 我正在学习 Robolectric 但发生错误
我正在学习Robolectric。
我的项目目录是,
我的单元测试代码MainActivityTest
如下,
配置是,
当我运行测试代码时,
出错了,
它说明了我的java。java信息是,
为什么说
将使用两者之一。哪一个是未定义的。
整个代码在我的 github RobolectricGo中。
android - Multidex 后 Robolectric 单元测试失败
所以我最近将我的 robolectric 3.0 升级与我们的主线合并,它为我们的应用程序添加了 multidex 支持。不幸的是,这有一个不幸的副作用,导致我们的测试失败/不运行 - 它们只会在第一次尝试安装 MultiDex 失败后停止,并带有以下堆栈跟踪:
我尝试实现各种解决方案,例如在我的 Multidex.Install 中捕获 RuntimeException (如此处所述https://github.com/robolectric/robolectric/issues/1328)并使用 Robolectric 提供的影子 MultiDex,但这根本失败带有 Gradle TaskExecutionException 并以值 255 退出。
有没有人想出解决这个问题的方法?这真的减慢了我的工作流程。
android-studio - 在 Android Studio 1.2 中运行 robolectric 3.0 单元测试时出现运行时异常
我正在使用 Robolectric 3.0 运行 android 单元测试,并且遇到了这个运行时异常。所有的测试几乎都给出了相同的例外。
我尝试了许多建议的选项,例如将--rerun-tasks添加到脚本参数,取消选中Compiler -> Android Studio 的 Gradle 设置中的“使用进程内构建”选项等。但它们都没有奏效。
这是我的 build.gradle 依赖列表的示例:
花了很多时间研究它,但没有结果。我非常感谢这方面的任何帮助。
谢谢!
android - LinkedIn Android SDK 设置
我已经按照 developer.linkedin.com 提供的入门指南开始将 LinkedIn 登录集成到我的应用程序中
我已经下载了适用于 Android 的移动 SDK,并在我的项目中导入了linkedin-sdk。
将以下行添加到我在 build.gradle 中的依赖项中:
在我的 settings.gradle 中添加了以下行:
当我同步项目时,我收到以下错误:
任何帮助是极大的赞赏。谢谢!
android - 在没有多重索引的情况下使用 Robolectric?
我正在开发一个 Android 应用程序,我想使用 Robolectric 进行测试。
我遇到的主要问题是,每当我将 Robolectric(和其他一些测试库)包含到我的 gradle.build 文件中时,我都会收到 Dex 错误,因此我需要启用 multidexing 库(我正在研究Android 4.4
)。
正因为如此,我不能再编译了,它需要的时间太长了。如果没有 Robolectric 和 multidex,编译可能需要一分钟,而在包含 Robolectric 和 multidex 时超过 30 分钟后我什么也得不到。
这是我完整的 gradle 文件:
我的问题是:在我的项目中包含 Robolectric 时,我做错了什么让我被迫使用 multidex?
android - Android java.lang.NoClassDefFoundError: R$string
每当我运行单元测试时,当它尝试从自定义 config.xml 文件中检索字符串值时,我都会收到此错误。
背景:
该项目本身是一个库 apk 项目,它使用和引用另一个库 APK 项目。
当项目本身尝试启动一个新对象时会发生错误,该对象是引用的库 apk 项目中包含的超类的子类。
该问题在下面进行了详细说明
因错误而失败的特定代码行是下面定义的静态变量:
它失败并出现以下错误:
如果您想知道,commonLib 是引用的库 apk。
这是我的单元测试
EventsTestHelper 是名为 NetworkHelper 的超类的子类,如下所示:
我使用最新的 robolectric 3.0 版来运行我的单元测试。
如果我要实时运行代码并调用并启动子类,它工作得很好,没有崩溃
编辑:下面是我的构建 gradle 文件的片段
编辑:我还尝试手动创建一个任务,为每个依赖项复制 r 类。
亲切的问候
强尼
android - 在 android studio 中以离线模式设置 Robolectric
我正在尝试在 android studio 中以离线模式设置 Robolectric。我需要它处于离线模式,因为我们需要在没有网络访问权限的 Jenkins 服务器上运行测试。
我遵循了以下链接中的“在离线模式下使用 Robolectric”部分:
我使用链接中给出的 pom 文件来下载所有相关的 jar 以在离线模式下设置 robolectric。我将 jars 包含在 Libs 文件夹中,并将它们作为依赖项添加到 android studio 中。当我在终端中使用以下命令运行简单测试时:
./gradlew clean testDebug --offline
我收到以下错误:
错误:Gradle:任务“:app:preDexDebug”执行失败。
com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command'/home/m1018337/jdk1.7.0_55/bin/java'' 以非零退出值 1 结束
我用谷歌搜索并尝试了一些修复上述错误的方法,但没有成功。
我需要帮助在离线模式下设置 robolectric。提前致谢。