问题标签 [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.

0 投票
2 回答
1028 浏览

android - Android Studio Robolectric 资源文件夹

我在 android studio 中有一个工作区,由应用程序项目和依赖项 android 库项目组成。

我在应用程序项目中有一个单元测试,它测试从应用程序项目资源和依赖库项目资源加载字符串的类。

当我在 Roboletric 中运行单元测试时,当被测类尝试从库项目资源中加载字符串时,我得到资源未找到异常。

如何解决这个问题?如何指定 Robolectric 使用的应用程序和依赖库资源目录?

0 投票
1 回答
1481 浏览

android - Robolectric 测试未运行 (Android)

我已经成功安装了 Robolectric,但我的测试根本没有运行。没有错误,但也没有结果。我错过了什么?

运行 ./gradlew test 后没有测试报告,但正确生成了测试类

我的 build.gradle:

我的测试:

0 投票
2 回答
2205 浏览

android - 使用 Google API 的 Robolectric - AnnotationFormatError

我尝试设置 robolectric 以使用针对 Google API 目标编译的项目,但无法使其正常工作。

我尝试了各种方法并使用deckard-gradle隔离了问题:

当我下载 Deckard 项目时,一切正常,示例测试成功运行。但是,当我将 gradle 文件中的 compileSdk 设置更改为 Google Inc.:Google APIs:19 时,我在运行测试时收到此 AnnotationFormatError :

以下是我的设置中的一些相关片段:

构建.gradle

我的测试课:

我还按照robolectric的说明将地图和支持库安装到我的本地 maven 存储库中。

任何想法在我的设置中可能有什么问题?

0 投票
0 回答
436 浏览

java - Robolectric、gradle 和构建类型问题

我知道有很多关于 roboelectric 和 gradle 的帖子,但我无法为我的项目设置它。

让我们从情况开始。

我的项目有三种构建类型,每种构建类型使用不同的包名称。我正在使用一些需要在清单中使用包名称的 SDK,所以为了解决这个问题,我在清单中使用了一个键,然后在每个 buildType 中我使用它

manifestPlaceholders = [_MY_PACKAGENAME_: getName()]

因此,我按照 gradle 指南中的说明配置了 roboelectirc,但我无法使其工作。我尝试了不同的东西,例如插件 Android Unit Test 和所有的解决方案,我得到了不同的错误。

喜欢java.lang.NoSuchMethodError cannot be cast to java.lang.RuntimeException

任何人都可以帮助我吗?

测试示例代码:

这是输出

0 投票
2 回答
1193 浏览

android - 运行单个测试的 Robolectric-Gradle 插件

是否可以使用 Robolectric-Gradle 插件运行单个测试?

我试过这个:

但它不起作用。

0 投票
3 回答
3239 浏览

android - ClassCastException:NoClassDefFoundError 不能转换为 RuntimeException

我正在努力将我的代码库升级到 Gradle 2.2 和 Android Studio 1.0。我目前正在尝试让 Robolectric 2.4 正常工作,但是当我尝试运行单元测试时遇到了一个奇怪的问题。gradle clean该问题仅在;之后发生 多次运行测试套件将产生通过测试(如预期的那样)。当我在清理后运行测试时,出现以下错误:

我已将错误追溯到此调用:

无论我使用 Robolectric gradle 插件 ( org.robolectric:robolectric-gradle-plugin:0.14.0) 还是 JC 和 K Android 单元测试插件 ( com.github.jcandksolutions.gradle:android-unit-test:2.1.1),我都会遇到此错误。

我在 Robolectric Github 上发现了这个问题,但它看起来还没有得到解决: https ://github.com/robolectric/robolectric/issues/1385

android studio 单元测试插件中也提到了这个问题,在“疑难解答”下: https ://github.com/evant/android-studio-unit-test-plugin

我当前的示例代码在这里: https ://github.com/KioKrofovitch/robolectric-upgrade-test

我已经能够在 Robolectric 样本上运行 api-android-16 项目而没有看到这个问题,尽管 api-android-19 和 api-android-21 项目由于其他原因而失败。我看不出他们做了什么不同的事情,以至于他们不会失败。 https://github.com/robolectric/robolectric-samples

有没有人找到解决方法?对于 Jenkins 或 Travis 等 CI 工具,运行两次测试并不是一个好的解决方法。

编辑:嵌入代码示例

我的顶级 build.gradle 我在其中添加了 JC 和 K 单元测试库:

我的项目级别 build.gradle,我在其中添加了 robolectric:

我非常基本的活动,模板创建它时,一切都已保留:

我的虚拟测试,由于 setupActivity() 方法错误,我无法访问我的断言:

编辑#2:为了运行测试,我从项目的顶级目录调用以下命令:

我也尝试在 gradle 包装器之外运行测试,并得到相同的结果

0 投票
1 回答
729 浏览

android - Gradle Build Test "Could not normalize...",用于在 Android Studio 中进行 Robolectric 测试

在 Windows 8.1 上运行 gradlew test --stacktrace。我收到此错误:

无法规范文件 'C:\Users\Aleesa\Documents\SDK\platforms\android-18\android.jar;C:\Users\Aleesa\Documents\SDK\add-ons\addon-google_apis-google-18 的路径\libs\usb.jar;C:\Users\Aleesa\Documents\SDK\add-ons\addon-google_apis-google-18\libs\effects.jar;C:\Users\Aleesa\Documents\SDK\add-ons \addon-google_apis-google-18\libs\maps.jar'。

我知道它是因为没有那个文件。我需要能够拆分(“;”)这个,但我不知道如何在 DST 中。这是我的模块的 build.gradle:

0 投票
2 回答
1810 浏览

gradle - 将多个 res 文件夹与 Robolectric 一起使用

我当前的 Gradle 配置有多个(合并的)res 文件夹:

但 Robolectric 允许我使用 AndroidManifest 配置单个目录:

这样测试就失败了。是否可以配置 robolectric 以反映我的 gradle 文件?

0 投票
1 回答
732 浏览

android - 创建活动时,Robolectric 2.4 NoSuchMethodError 无法转换为 RuntimeException

我开始在 Android Studio 中使用 Robolectric。起初我想使用 hamcrest 创建一个简单的测试,如下所示:

执行测试时抛出以下异常:

该类CustomTestRunner如下所示:

我可以添加 MainActivity 扩展android.support.v7.app.ActionBarActivity,但我不知道这是否会影响行为。

在对 Robolectric 源进行一些挖掘之后,执行此操作时会出现错误:

的代码callInstanceMethodReflectively如下所示:

我不是反射专家,但似乎无法找到performCreate方法。有没有人遇到过类似的问题?有谁知道可能是什么问题?

0 投票
0 回答
284 浏览

robolectric - 测试是否重新创建了活动

我无法在应该使用 robolectric 重新创建活动的活动中测试方法。

方法代码大致如下:

只要我recreate在最后注释掉,一切都会好起来的,但如果没有注释掉,测试就会失败,说活动被破坏了。该代码似乎在实际应用程序中运行良好。Otto此外,如果相关,事件将由公共汽车传递。

编辑:包括崩溃日志