wdio-video-reporter icon indicating copy to clipboard operation
wdio-video-reporter copied to clipboard

Videos generated are not attached to an allure report if using Mocha before / beforeEach hooks

Open GibDot opened this issue 10 months ago • 1 comments

Describe the bug Videos generated are not attached correctly to the allure report if a before / beforeEach hook exists in Mocha.

Log:

[2024-04-15T19:00:35.834Z] Adding execution video attachment as /Users/.../.../wdio_video_temp/allure-results/Should-fail-0-0--CHROME--2024-04-15--15-00-35-817.webm
[2024-04-15T19:00:37.763Z] Add frame for command: /session/:sessionId/url => [url]
[2024-04-15T19:00:41.091Z] Add frame for command: /session/:sessionId/url => [url]
[2024-04-15T19:00:41.195Z] - Screenshot (frame: 0)
[2024-04-15T19:00:41.300Z] - Screenshot (frame: 1)
[2024-04-15T19:00:41.311Z] Add frame for command: /session/:sessionId/execute/sync => [sync]
[2024-04-15T19:00:41.471Z] - Screenshot (frame: 2)
[2024-04-15T19:00:41.472Z] Add frame for command: /session/:sessionId/execute/sync => [sync]
[2024-04-15T19:00:41.564Z] - Screenshot (frame: 3)
[2024-04-15T19:00:43.590Z] ffmpeg command: "/Users/.../.../wdio_video_temp/node_modules/@ffmpeg-installer/darwin-arm64/ffmpeg" -y -r 10 -i "/Users/.../.../wdio_video_temp/allure-results/.video-reporter-screenshots/Should-fail-0-0--CHROME--2024-04-15--15-00-35-817/%04d.png" -vcodec libvpx-vp9 -crf 32 -pix_fmt yuv420p -vf "scale=1200:trunc(ow/a/2)*2","setpts=3.0*PTS" "/Users/.../.../wdio_video_temp/allure-results/Should-fail-0-0--CHROME--2024-04-15--15-00-35-817.webm"
[2024-04-15T19:00:43.690Z] Screenshot not available (frame: 4). Error: Error: There isn't any active test!..
[2024-04-15T19:00:44.041Z] Screenshot not available (frame: 5). Error: RequestError: connect ECONNREFUSED 0.0.0.0:62345..
[2024-04-15T19:00:44.197Z] Generated video: "/Users/.../.../wdio_video_temp/allure-results/Should-fail-0-0--CHROME--2024-04-15--15-00-35-817.webm" (607ms)
[2024-04-15T19:00:44.197Z] Generated 1 videos, video report done!

To Reproduce

Test File:

describe('WDIO Video Test', () => {
    beforeEach(async () => {
        await browser.navigateTo('https://www.google.com/')
    })

    it('Should fail', async () => {
        await browser.navigateTo('https://webdriver.io/')
        await $('.footer__title').scrollIntoView()
        await browser.pause(2000)
        await expect(1).toEqual(2)
    })
})

package.json:

{
  "name": "wdio_video_temp",
  "type": "module",
  "devDependencies": {
    "@babel/core": "^7.24.4",
    "@babel/preset-env": "^7.24.4",
    "@babel/register": "^7.23.7",
    "@wdio/allure-reporter": "^8.14.0",
    "@wdio/cli": "^8.36.0",
    "@wdio/local-runner": "^8.36.0",
    "@wdio/mocha-framework": "^8.36.0",
    "@wdio/spec-reporter": "^8.36.0",
    "wdio-video-reporter": "^5.2.0"
  },
  "scripts": {
    "wdio": "wdio run ./wdio.conf.js"
  }
}

wdio.conf.js:

Boiler plate configuration with the below updates to reporters:

    reporters: ['spec',
        ['allure',
            { outputDir: 'allure-results' }],
        ['video',
            {
                outputDir: 'allure-results',
                saveAllVideos: false,
            }]
    ],

Expected behavior:

I expect the video files that are generated and present within the output directory to be included in the Allure Report when using before / beforeEach hooks.

Environment (please complete the following information):

  • wdio-video-reporter version: 5.2.0
  • WebdriverIO version: 8.36.0
  • Mode: Testrunner
  • If WDIO Testrunner, running sync/async: async
  • Node.js version: v20.11.1
  • NPM version: 10.2.4
  • Browser name and version: 123.0.6312.122
  • Platform name and version: MacOS Ventura - 13.6.3

Desktop (please complete the following information):

  • OS: MacOS
  • Browser: Chrome
  • Version: 123.0.6312.122

Additional context:

  • Viewing the output directory, the video file is present and labelled appropriately.
  • Despite the before / beforeEach hooks succeeding, a video is created for these steps are attached to the allure report regardless of the 'saveAllVideos' parameter in the configuration.
  • When removing the beforeEach hook in the above snippet, the videos of the tests are attached to the allure report as expected.

GibDot avatar Apr 15 '24 19:04 GibDot