Как запустить инструментальные тесты с использованием fastlane в эмуляторе? - PullRequest
1 голос
/ 11 апреля 2019

Проблема, с которой я сталкиваюсь, заключается в том, что я не могу запустить тесты эспрессо с помощью FastLane. Я хочу запустить тесты в эмуляторе с помощью плагина Fastlane

Я использовал плагин Automatic_test_emulator_run от Fastlane, я следую инструкциям в этой статье https://medium.com/pink-room-club/android-continuous-integration-using-fastlane-and-circleci-2-0-part-i-7204e2e7b8b

на данный момент, я просто хочу запускать тесты локально, поэтому при выполнении следующего

Комплектация Fastlane instrumentation_tests

происходит сбой с ошибкой: нет такого файла или каталога - / tools / bin / avdmanager

вот мой переулок в Фастлэйне

default_platform(:android)

platform :android do
desc "Runs all the tests"
lane :test do
gradle(task: "test")
end

#for increment the version code
android_get_version_code(
gradle_file: "app/build.gradle" # optional
)

android_set_version_code(
gradle_file: "app/build.gradle" # optional
)

desc "Run instrumentation tests"
lane :instrumentation_tests do
automated_test_emulator_run(
AVD_setup_path: "fastlane/AVD_setup.json",
AVD_recreate_new: false,
AVD_clean_after: false,
gradle_task: "connectedDebugAndroidTest")
end
end

А это мой AVD_setup.json

{
"avd_list": [
  {
    "avd_name": "Pixel_2_API_Test",

    "create_avd_package": "system-images;android-28;google_apis_playstore;x86",
    "create_avd_device": "Pixel 2",
    "create_avd_tag": "google_apis_playstore",
    "create_avd_abi": "x86",
    "create_avd_additional_options": "",
    "create_avd_hardware_config_filepath": "",

    "launch_avd_port": "",
    "launch_avd_snapshot_filepath": "",
    "launch_avd_launch_binary_name": "emulator",
    "launch_avd_additional_options": "-skin 1080x1920 -gpu on"
  }
]
}

вот часть вывода и ошибка, которую я получил

[13:34:31]: Driving the lane 'android instrumentation_tests' ?
[13:34:31]: -----------------------------------------
[13:34:31]: --- Step: automated_test_emulator_run ---
[13:34:31]: -----------------------------------------
[13:34:31]: The automated_test_emulator_run plugin is working!
[13:34:31]: Preparing commands for Android ADB
[13:34:31]: Preparing parameters and commands for emulator: 
Pixel_2_API_Test
[13:34:31]: Configuring environment in order to launch emulators: 
[13:34:31]: Getting avaliable AVDs
[13:34:31]: $ /tools/bin/avdmanager list avd
+--------------------------+-------------------------------+
|                       Lane Context                       |
+--------------------------+-------------------------------+
| DEFAULT_PLATFORM         | android                       |
| ANDROID_VERSION_CODE     | 38                            |
| ANDROID_NEW_VERSION_CODE | 39                            |
| PLATFORM_NAME            | android                       |
| LANE_NAME                | android instrumentation_tests |
+--------------------------+-------------------------------+
[13:34:31]: No such file or directory - /tools/bin/avdmanager

+------+-----------------------------+-------------+
|                 fastlane summary                 |
+------+-----------------------------+-------------+
| Step | Action                      | Time (in s) |
+------+-----------------------------+-------------+
| 1    | default_platform            | 0           |
| 2    | android_get_version_code    | 0           |
| 3    | android_set_version_code    | 0           |
| 4    | prompt                      | 4           |
| ?   | automated_test_emulator_run | 0           |
+------+-----------------------------+-------------+

[13:34:31]: fastlane finished with errors

[13:34:31]: Error accessing file, this might be due to fastlane's 
directory handling
[13:34:31]: Check out 
https://docs.fastlane.tools/advanced/#directory-behavior for more 
details

/ Система / Библиотека / Каркасы / Ruby.framework / Версии / 2.3 / usr / lib / ruby ​​/ 2.3.0 / open3.rb: 199: в `spawn ': нет такого файла или каталога - / tools / bin / avdmanager (Errno :: ENOENT) от

/ Система / Библиотека / Каркасы / Ruby.framework / Версии / 2.3 / usr / lib / ruby ​​/ 2.3.0 / open3.rb: 199: в `popen_run ' от

/ Система / Библиотека / Каркасы / Ruby.framework / Версии / 2.3 / usr / lib / ruby ​​/ 2.3.0 / open3.rb: 190: in popen2e' from /Library/Ruby/Gems/2.3.0/gems/fastlane->2.120.0/fastlane/lib/fastlane/helper/sh_helper.rb:54:in sh_control_output ' из> /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/forwardable.rb:202:in sh' from /Library/Ruby/Gems/2.3.0/gems/fastlane-plugin-automated_test_emulator_run-1.6.0/lib/fastlane/plugin/automated_test_emulator_run/actions/automated_test_emulator_run_action.rb:48:in run ' из /Library/Ruby/Gems/2.3.0/gems/fastlane-2.120.0/fastlane/lib/fastlane/runner.rb:256:in block (2 levels) in execute_action' from /Library/Ruby/Gems/2.3.0/gems/fastlane- 2.120.0/fastlane/lib/fastlane/actions/actions_helper.rb:50:in execute_action ' из /Library/Ruby/Gems/2.3.0/gems/fastlane-2.120.0/fastlane/lib/fastlane/runner.rb:235:in block in execute_action' from /Library/Ruby/Gems/2.3.0/gems/fastlane-2.120.0/fastlane/lib/fastlane/runner.rb:227:in chdir ' из /Library/Ruby/Gems/2.3.0/gems/fastlane-2.120.0/fastlane/lib/fastlane/runner.rb:227:in execute_action' from /Library/Ruby/Gems/2.3.0/gems/fastlane-2.120.0/fastlane/lib/fastlane/runner.rb:157:in trigger_action_by_name ' из /Library/Ruby/Gems/2.3.0/gems/fastlane-2.120.0/fastlane/lib/fastlane/fast_file.rb:154:in method_missing' from Fastfile:26:in блока (2 уровня) в parsing_binding ' из /Library/Ruby/Gems/2.3.0/gems/fastlane-2.120.0/fastlane/lib/fastlane/lane.rb:33:in call' from /Library/Ruby/Gems/2.3.0/gems/fastlane-2.120.0/fastlane/lib/fastlane/runner.rb:49:in block in execute ' из /Library/Ruby/Gems/2.3.0/gems/fastlane-2.120.0/fastlane/lib/fastlane/runner.rb:45:in chdir' from /Library/Ruby/Gems/2.3.0/gems/fastlane-2.120.0/fastlane/lib/fastlane/runner.rb:45:in execute ' из /Library/Ruby/Gems/2.3.0/gems/fastlane-2.120.0/fastlane/lib/fastlane/lane_manager.rb:56:in cruise_lane' from /Library/Ruby/Gems/2.3.0/gems/fastlane-2.120.0/fastlane/lib/fastlane/command_line_handler.rb:36:in handle ' из /Library/Ruby/Gems/2.3.0/gems/fastlane-2.120.0/fastlane/lib/fastlane/commands_generator.rb:108:in `блок (2 уровня) в прогоне '

Я не знаю, что мне делать? что я пропустил? в сообщении об ошибке указано, что это может быть связано с обработкой каталогов fastlane, поэтому я пошел по ссылке, но не понял, что делать ?! Я использую обновленные fastlane и плагины, пожалуйста, помогите мне и заранее спасибо

1 Ответ

1 голос
/ 11 апреля 2019

Игнорировать стандартное сообщение об ошибке fastlane, относящееся к обработке каталогов.

Это нечто между используемым плагином (https://github.com/AzimoLabs/fastlane-plugin-automated-test-emulator-run из моего поиска в Google - вы фактически не предоставили больше информации об этом), команда / программа, которую она пытается использовать (/tools/bin/avdmanager list avd), и ваша локальная установка Android.

Вы должны выяснить, есть ли у вашего локального Android команда avdmanager и где она живет, и если list avd работает с этим.Затем выясните, почему плагин не использует его из правильного местоположения.

Подсказка: возможно, плагин использует переменную ENV ANDROID_HOME или аналогичную, которая пуста в вашей системе.

...