AndroidStudio 2.3更新后的Robolectric测试中的RuntimeEnvironment.application

时间:2017-03-08 12:33:33

标签: android android-studio testing robolectric

我们在Android Studio中使用Robolectric进行测试。

最近从2.2.x升级到2.3后,我所有的测试都是用Robolectric(即lua)运行失败。

更具体地说,我在这里得到了ClassCastException,因为似乎@RunWith(RobolectricTestRunner.class)不再返回为测试目的而创建的自定义应用程序类型。

RuntimeEnvironment.application

显然我得到一个普通的MyTestApplication testApp = (MyTestApplication) RuntimeEnvironment.application; // do something with testApp 而不是预期的类型...

症结:

  • 测试和配置都没有改变,我唯一做的就是AndroidStudio更新(我做android.app.Application只是为了确保......)。
  • 在命令行上,我的测试运行得很好,,这让我觉得这可能是Android Studio中测试运行器的一个问题。

:(

我想我尝试了Android Studio中的所有内容,例如清理/重建,重新同步gradle文件,无效缓存+重启......我尝试重新下载并重新安装Android Studio(2.2.3和2.3版本)。我清理了我的本地gradle缓存和我当地的git reset --hard回购只是为了确保,但无济于事...... :(

1 个答案:

答案 0 :(得分:1)

找到解决方案:

  1. 转到运行>编辑配置
  2. 然后在 JUnit>的运行/调试配置中应用程序中的Java
  3. 工作目录
  4. 字段中添加$MODULE_DIR$