Skip to content

Ignored capability deviceName when using with appium 3. #1118

@scharfi49

Description

@scharfi49

Environment (please complete the following information):

  • Node.js version: v24.5.0
  • NPM version: 11.5.1
  • Platform name and version: MAC OS 26
  • WebdriverIO version: 9.18.4
  • @wdio/visual-service version: 9.1.3

Config of WebdriverIO + @wdio/visual-service
.ENVS:

APPIUM_HOME=../../node_modules/
PACKAGE_NAME=*****
OS_PLATFORM=android

AVD_NAME=Pixel_6_API_34

ROLE=admin

API_URL=http://10.0.2.2:4949

DISABLE_RETRY=true

WDIO:

services: [
   [
     'visual',
     {
       formatImageName: '{tag}',
       screenshotPath: path.join(process.cwd(), 'tmp'),
       savePerInstance: true,
       autoSaveBaseline: true,
       clearRuntimeFolder: true,
       autoElementScroll: true,
       blockOutStatusBar: true,
       blockOutToolBar: true,
       blockOutSideBar: true,
     } satisfies VisualServiceOptions,
   ],
 ],

Android capabilities:

capabilities: [
    {
      platformName: 'Android',
      port: Number(process.env.APPIUM_PORT) || 4723,
      'appium:options': {
        automationName: 'UiAutomator2',
        avd: `${process.env.AVD_NAME}`,
        deviceName: `${process.env.AVD_NAME}`,
        platformVersion: '14.0',
        newCommandTimeout: 300,
        noReset: !isCI(),
        fullReset: isCI(),
        disableWindowAnimation: true,
        appWaitActivity: *****
      },

      ...(isApk() && {
        'appium:app': process.env.APP_FILE_PATH,
      }),
    },
  ],

Describe the bug
At appium 2.0 setting up deviceName capability with savePerInstance: true in visual service forced snaps to be stored in eg.:
packages/mobile-app-e2e/appium/e2e/01-unauthorized/01-onboarding/__snapshots__/pixel_6_api_34
where dir pixel_6_api_34 was created via appium:deviceName: ${process.env.AVD_NAME},.

In appium 3 setting it up does nothing, according to appium documentatnion users should use appium:avd instead.
even with setting up appium:deviceName and appium:avd the dir is created as: emulator-5554.
There is no option to change it.

According to:

[127] % adb devices -l
List of devices attached
emulator-5554          device product:sdk_gphone64_arm64 model:sdk_gphone64_arm64 device:emu64a transport_id:1

This problem exists only on android devices. Ios devices still creates correct folders after migration from appium 2 > 3

Expected behavior
Allow users option to use custom name for savePerInstance.
eg.

[1] % avdmanager list avd
Available Android Virtual Devices:
    Name: Pixel_6_API_34
  Device: pixel_6 (Google)
    Path: /Users/patryk/.android/avd/Pixel_6.avd
  Target: Google APIs (Google Inc.)
          Based on: Android API 34 Tag/ABI: google_apis/arm64-v8a
    Skin: pixel_6
  Sdcard: 512M

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions