codeceptjs / CodeceptJS

Supercharged End 2 End Testing Framework for NodeJS

Home Page:http://codecept.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

runOnAndroid/runOnIOS blocks are stuck after upgrading CodeCept from 3.4.1 to 3.5.15 and Appium From 1 to 2.

kiran-yara opened this issue · comments

What are you trying to achieve?

We recently upgraded from 3.4.1 to 3.5.15 and from Appium 1 to Appium 2.

What do you get instead?

After the upgrade our scripts started failing inside runOnAndroid/runOnIOS. Failing as in scripts are stuck and dont proceed after default timeout Broswerstack execution is auto killed and scripts stay stuck.
Please note if I revert back to 3.4.1 and Appium 1 it works as expected

Console output if related.
Not Applicable as no output is getting printed

        I.runOnAndroid(() => {
            I.waitForElement('Invalid phone number, please try again', 120)
            I.seeElement('Invalid phone number, please try again')
        });
        I.runOnIOS(() => {
            I.waitForElement('Incorrect number Please try again', 120)
            I.seeElement('Incorrect number Please try again')
        });

Details

  • CodeceptJS version: 3.5.15
  • NodeJS Version: v16.15.1
  • Operating System: ANdroid/iOS/Mac Ventura 13
  • webdriverio: 8.32.0
  • Configuration file:
exports.config = {
    tests: testPath,
    output: '../output',
    timeout: 10000,
    
    helpers: {
        Appium: {
            appiumV2: true,
            host: "hub-cloud.browserstack.com",
            port: 4444,
            user: process.env.YC_BS_USER,
            key: process.env.YC_BS_KEY,
            platform : "android",
            desiredCapabilities: {
              "platformName" : "android",
              "platformVersion" : "10.0",
              "deviceName" : "OnePlus 8",
              "app" : "bs://XXXXXX",
              'bstack:options' : {
                userName : process.env.YC_BS_USER,
                accessKey : process.env.YC_BS_KEY,
                "appiumVersion":"2.4.1",
                "projectName" : "YaraConnect",
              }
            }
        },
      BrowserStackAppAutomate: {
          require: "../tests/helpers/browserStackAppAutomateHelper.js",
          user: process.env.YC_BS_USER,
          key: process.env.YC_BS_KEY,
      },
      AppiumHelper: {
          require: "../tests/helpers/appiumHelper.js",
      },
      REST: {},
      DbHelper: {
          require: "../tests/helpers/dbConnectHelper.js"
      },
      AllureDebugHelper: {
          require: '../tests/helpers/AllureDebugHelper.js',
      }
    },
    include: pageObjects,
    bootstrap: null,
    mocha: {},
    name: 'yc-global-e2e',
    plugins: {
        pauseOnFail: {},
        retryFailedStep: {
            enabled: true
        },
        screenshotOnFail: {
            enabled: true
        },
        tryTo: {
            enabled: true
        },
        allure: {
          outputDir:'allure-results',
          enabled: true,
          require: '@codeceptjs/allure-legacy',
        }
    }
}

I have encountered the same issue when upgrading codeceptjs to the latest version (from 3.4.1 to currently latest @3.6.2). This is a very critical bug that needs to be fixed as older versions of Codeceptjs do no contain the fix for touch/perform actions. This way, I have to choose between runOnIOS / runOnAndroid function OR touch/perform actions which are both very needed. Please fix this issue 🙏