Моего кальян андроида тестового проект имеет следующую структуру:Использование третьей стороны библиотеки рубина в моих калабаш тестов, но получает ошибку
-- myApp.apk
-- features (directory)
|-- my-feature-1-file-name.feature
|-- step_definitions (directory)
| calabash_steps.rb
|-- support (directory)
| thirdPartyLib.rb
Мои тестовые кальяны шаги должны использовать стороннюю библиотеку thirdPartyLib.rb. Как вы видите выше, под каталогом features/
, у меня есть каталог support/
, там, у меня есть файл thirdPartyLib.rb ruby.
Внутри thirdPartyLib.rb, 1-ая строка кода заключается в следующем:
require 'jmespath'
...
Когда я иду в корень проекта и запустить тест командой calabash-android run myApp.apk DEBUG=1
, я получаю следующее сообщение об ошибке:
DEBUG: Setting Android SDK location to $ANDROID_HOME
DEBUG: Android SDK location set to '/Users/John/Library/Android/sdk'
DEBUG: Set aapt path to '/Users/John/Library/Android/sdk/build-tools/23.0.3/aapt'
DEBUG: Set zipalign path to '/Users/John/Library/Android/sdk/build-tools/23.0.3/zipalign'
DEBUG: Set adb path to '/Users/John/Library/Android/sdk/platform-tools/adb'
DEBUG: Set android jar path to '/Users/John/Library/Android/sdk/platforms/android-24/android.jar'
DEBUG: Setting Java SDK location to $JAVA_HOME
DEBUG: Java SDK location set to '/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home'
DEBUG: Found java on PATH
DEBUG: Set java path to '/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/bin/java'
DEBUG: Found keytool on PATH
DEBUG: Set keytool path to '/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/bin/keytool'
DEBUG: Found jarsigner on PATH
DEBUG: Set jarsigner path to '/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/bin/jarsigner'
cannot load such file -- jmespath (LoadError)
/Users/John/.calabash/sandbox/Rubies/2.1.6-p336/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Users/John/.calabash/sandbox/Rubies/2.1.6-p336/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Users/John/my-calabash-test/features/support/thirdPartyLib.rb:1:in `<top (required)>'
...
Итак, это ошибка загрузки, это выглядит как калебас-андроид не может загрузить файл jmespath (LoadError)
, объявленный в thirdPartLib.rb. Как я могу избавиться от этой ошибки?
установлен ли jmespath камень? –
Нет. Это не так. Но я не могу установить только драгоценный камень, потому что мне нужно загрузить мой тестовый проект calabash в облачный режим, мне нужны все файлы ruby для сторонних библиотек, помещенные в каталог 'support /' моего тестового проекта. –
Можете ли вы добавить jmespath к ваш Gemfile? –