android - nativescript-dev-appium e2e 测试失败

标签 android testing nativescript system-testing

我尝试使用 nativescript-dev-appium 进行端到端测试,但失败了。我不知道出了什么问题。 我正在使用此链接进行编码 https://github.com/NativeScript/ns-dev-days-appium-plugin

这是android28

"android28": {
        "platformName": "Android",
        "platformVersion": "28",
        "deviceName": "Emulator-Api28-Google",
        "avd": "Emulator-Api28-Google",
        "lt": 60000,
        "newCommandTimeout": 720,
        "noReset": false,
        "fullReset": false,
        "app": ""
    }

$ npm run e2e -- --runType android28

@ e2e /appium-demo node ./node_modules/nativescript-dev-appium/check-dev-deps.js &&  tsc -p e2e  &&  mocha --opts ./e2e/config/mocha.opts  "--runType" "android28"



    Parsed args:   {"port":4723,"projectDir":"/appium-demo","projectBinary":"/appium-demo/node_modules/.bin","pluginRoot":"/appium-demo/node_modules/nativescript-dev-appium","pluginBinary":"/appium-demo/node_modules/nativescript-dev-appium/node_modules/.bin","wdaLocalPort":8410,"testFolder":"e2e","runType":"android28","appiumCapsLocation":"/appium-demo/e2e/config/appium.capabilities.json","verbose":false,"cleanApp":false,"path":"/appium-demo","capabilitiesName":"appium.capabilities.json","driverConfig":{"host":"localhost","port":4723},"logImageTypes":[]}


    /appium-demo/e2e/config/appium.capabilities.json
    Capabilities found at: /appium-demo/e2e/config/appium.capabilities.json 
    Automation name set to: UIAutomator2 
    To change automation name, you need to set it in appium capabilities!
    Available applications:  ["platforms/android/app/build/outputs/apk/debug/app-debug.apk"]
    Pick first application:   "platforms/android/app/build/outputs/apk/debug/app-debug.apk"
    Application full path: /appium-demo/platforms/android/app/build/outputs/apk/debug/app-debug.apk 
      1) "before all" hook: start server
      2) "after all" hook: stop server

      0 passing (109ms)
      2 failing

  1) "before all" hook: start server:
     TypeError: Cannot read property 'sdk' of undefined
      at fs_1.readFileSync.split.forEach.line (node_modules/mobile-devices-controller/lib/android-controller.js:678:44)
      at Array.forEach (<anonymous>)
      at fs_1.readdirSync.filter.forEach.f (node_modules/mobile-devices-controller/lib/android-controller.js:671:18)
      at Array.forEach (<anonymous>)
      at Function.parseEmulatorsAvds (node_modules/mobile-devices-controller/lib/android-controller.js:668:14)
      at Function.<anonymous> (node_modules/mobile-devices-controller/lib/android-controller.js:862:57)
      at Generator.next (<anonymous>)
      at /home/mai/code/mobile_app/appium-demo/node_modules/mobile-devices-controller/lib/android-controller.js:8:71
      at new Promise (<anonymous>)
      at __awaiter (node_modules/mobile-devices-controller/lib/android-controller.js:4:12)
      at Function.parseEmulators (node_modules/mobile-devices-controller/lib/android-controller.js:856:16)
      at Function.<anonymous> (node_modules/mobile-devices-controller/lib/android-controller.js:46:37)
      at Generator.next (<anonymous>)
      at /home/mai/code/mobile_app/appium-demo/node_modules/mobile-devices-controller/lib/android-controller.js:8:71
      at new Promise (<anonymous>)
      at __awaiter (node_modules/mobile-devices-controller/lib/android-controller.js:4:12)
      at Function.getAllDevices (node_modules/mobile-devices-controller/lib/android-controller.js:42:16)
      at Function.<anonymous> (node_modules/mobile-devices-controller/lib/device-controller.js:242:63)
      at Generator.next (<anonymous>)
      at /home/mai/code/mobile_app/appium-demo/node_modules/mobile-devices-controller/lib/device-controller.js:8:71
      at new Promise (<anonymous>)
      at __awaiter (node_modules/mobile-devices-controller/lib/device-controller.js:4:12)
      at Function.mapDevicesToArray (node_modules/mobile-devices-controller/lib/device-controller.js:235:16)
      at Function.<anonymous> (node_modules/mobile-devices-controller/lib/device-controller.js:24:52)
      at Generator.next (<anonymous>)
      at /home/mai/code/mobile_app/appium-demo/node_modules/mobile-devices-controller/lib/device-controller.js:8:71
      at new Promise (<anonymous>)
      at __awaiter (node_modules/mobile-devices-controller/lib/device-controller.js:4:12)
      at Function.getDevices (node_modules/mobile-devices-controller/lib/device-controller.js:22:16)
      at DeviceManager.<anonymous> (node_modules/nativescript-dev-appium/lib/device-manager.js:41:86)
      at Generator.next (<anonymous>)
      at /home/mai/code/mobile_app/appium-demo/node_modules/nativescript-dev-appium/lib/device-manager.js:7:71
      at new Promise (<anonymous>)
      at __awaiter (node_modules/nativescript-dev-appium/lib/device-manager.js:3:12)
      at DeviceManager.startDevice (node_modules/nativescript-dev-appium/lib/device-manager.js:18:16)
      at Object.<anonymous> (node_modules/nativescript-dev-appium/lib/utils.js:491:44)
      at Generator.next (<anonymous>)
      at /home/mai/code/mobile_app/appium-demo/node_modules/nativescript-dev-appium/lib/utils.js:7:71
      at new Promise (<anonymous>)
      at __awaiter (node_modules/nativescript-dev-appium/lib/utils.js:3:12)
      at Object.exports.prepareDevice (node_modules/nativescript-dev-appium/lib/utils.js:489:50)
      at AppiumServer.<anonymous> (node_modules/nativescript-dev-appium/lib/appium-server.js:165:40)
      at Generator.next (<anonymous>)
      at /home/mai/code/mobile_app/appium-demo/node_modules/nativescript-dev-appium/lib/appium-server.js:7:71
      at new Promise (<anonymous>)
      at __awaiter (node_modules/nativescript-dev-appium/lib/appium-server.js:3:12)
      at AppiumServer.prepDevice (node_modules/nativescript-dev-appium/lib/appium-server.js:164:16)
      at AppiumServer.<anonymous> (node_modules/nativescript-dev-appium/lib/appium-server.js:55:28)
      at Generator.next (<anonymous>)
      at fulfilled (node_modules/nativescript-dev-appium/lib/appium-server.js:4:58)
      at process._tickCallback (internal/process/next_tick.js:68:7)

  2) "after all" hook: stop server:
     TypeError: Cannot read property 'platform' of undefined
      at Function.getApplicationId (node_modules/mobile-devices-controller/lib/device-controller.js:96:20)
      at Function.<anonymous> (node_modules/mobile-devices-controller/lib/device-controller.js:217:47)
      at Generator.next (<anonymous>)
      at /home/mai/code/mobile_app/appium-demo/node_modules/mobile-devices-controller/lib/device-controller.js:8:71
      at new Promise (<anonymous>)
      at __awaiter (node_modules/mobile-devices-controller/lib/device-controller.js:4:12)
      at Function.uninstallApplication (node_modules/mobile-devices-controller/lib/device-controller.js:216:16)
      at Object.<anonymous> (node_modules/nativescript-dev-appium/index.js:92:64)
      at Generator.next (<anonymous>)
      at /home/mai/code/mobile_app/appium-demo/node_modules/nativescript-dev-appium/index.js:7:71
      at new Promise (<anonymous>)
      at __awaiter (node_modules/nativescript-dev-appium/index.js:3:12)
      at Object.stopServer (node_modules/nativescript-dev-appium/index.js:84:12)
      at Context.<anonymous> (e2e/setup.js:33:41)
      at Generator.next (<anonymous>)
      at /home/mai/code/mobile_app/appium-demo/e2e/setup.js:7:71
      at new Promise (<anonymous>)
      at __awaiter (e2e/setup.js:3:12)
      at Context.<anonymous> (e2e/setup.js:32:12)
      at process.topLevelDomainCallback (domain.js:126:23)

最佳答案

这可能是同一个问题,也可能不是同一个问题,但我一开始无法运行 Appium 测试。我实际上使用的是与您完全相同的命令:

npm run e2e -- --runType android28

尽管为 Android 28 定义了 AVD,但它无法启动。我最终需要做的是创建一个新的 AVD,它使用 Android 28,并将其命名为“Emulator-Api28-Google”以匹配配置文件。在那之后,一切都是香蕉寄养的。

希望这对您有所帮助!

关于android - nativescript-dev-appium e2e 测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58690011/

相关文章:

Android camera-2 API 录制预览在三星 Galaxy S8 的人像录制中被压缩

android - Build.Gradle 错误 : Unable to resolve dependency

javascript - NativeScript:UI 不会在不刷新的情况下显示从 ObservableArray 中删除的项目

typescript - 预期有 2 个参数,但得到 1.ts(2554) core.d.ts(8064, 47) : An argument for 'opts' was not provided

javascript - 如何在 NativeScript 中使用 core JS 导入和使用模块

Android - 从 byte[] 播放 mp3

java - android string array nullpointerexception 在旧的 android 版本上

testing - 如何解决 Groovy 脚本中的运行错误

node.js - 测试 Express response locals

java - 在 Appium ios 中使用 Selenium Webdriver 选择器