无法使用Robolectric 4.0.1运行测试,“ packageDebugUnitTestForUnitTest”失败

时间:2018-11-05 18:02:40

标签: android kotlin robolectric

升级到Robolectric 4.0.1后,我的机器人电学测试无法正常工作。

在我的gradle配置中,我正在使用... function (el, errorEl, nameOfClass = '', errorMsg = '') { ... } 和gradle.properties var x = function (el, errorEl, nameOfClass, errorMsg) { nameOfClass = (typeOf nameOfClass != 'undefined') ? nameOfClass : 'Default Class Name'; errorMsg = (typeOf errorMsg != 'undefined') ? errorMsg : 'Default Error Message'; // code } x(a,b,c,d); // works x(a,b); // works using the defaults instead of c/d

下面是一个虚拟测试,例如:

testOptions.unitTests.includeAndroidResources = true

我遇到2个独立的问题:

  1. 如果我运行测试,则会收到以下消息:
  

失败:构建失败,并出现异常。

     
      
  • 出了什么问题:任务':packageDebugUnitTestForUnitTest'的执行失败。      
        

    索引11上不透明部分中的非法字符:jar:file:C:\ myproject \ build \ intermediates \ apk_for_local_test \ debugUnitTest \ packageDebugUnitTestForUnitTest \ apk-for-local-test.ap _

      
  •   
  1. 如果我从gradle配置文件中删除了android.enableUnitTestBinaryResources=true选项,则出现以下错误:
  

android.content.res.Resources $ NotFoundException:资源ID   #0x7f030007

@RunWith(RobolectricTestRunner::class) internal class MyRobolectricTests { @Test fun my_test() { val someItems = ApplicationProvider.getApplicationContext().resources.getStringArray(R.array.array_of_strings) assertEquals(10, someItems.size) } }

为什么测试可以在3.6.1版中使用,但现在却不能使用?

1 个答案:

答案 0 :(得分:0)

从gradle.properties中删除android.enableUnitTestBinaryResources=true。对我来说有帮助。

请参阅关于此问题的所有评论here