codeceptjs / CodeceptJS

Supercharged End 2 End Testing Framework for NodeJS
http://codecept.io
MIT License
4.11k stars 724 forks source link

Visual Test error on Parallel Test #1864

Closed dcaueb78 closed 7 months ago

dcaueb78 commented 5 years ago

If the test is run without parallelization it works correctly (codeceptjs run --plugins allure). But if you use parallelization (codeceptjs run-multiple --plugins allure parallel), the visual test shows the following error.

Provide console output if related. Use --verbose mode for more details.

Cannot read property 'misMatchPercentage' of undefined
TypeError: Cannot read property 'misMatchPercentage' of undefined
                    at ResembleHelper._fetchMisMatchPercentage (/home/***/Projects/***/****/tests/codecept/node_modules/codeceptjs-resemblehelper/index.js:84:21)
                    at process._tickCallback (internal/process/next_tick.js:68:7)

Provide test source code if related

Scenario('Compare graph pizza',(I)=>{
    I.seeVisualDiff('graph_pizza.png',{prepareBaseImage: false, tolerance: 0.6})
})

Details

exports.config = {
    tests: './**/*_test.js',
    timeout: 10000,
    output: 'output',
    helpers: {
        WebDriver: {
          smartWait: 50,
          url: "http://172.17.0.1/",
          browser: "chrome",
          restart: false,
          maximize: true,
          desiredCapabilities: {
            chromeOptions: {
              args:["--headless",
                    "--window-size=1200,1200",
                    "--disable-gpu"]
            }
          }
        },
        DownloadFile:{
          require:"./helpers/DownloadFile.js"
        },
        REST:{},
        ResembleHelper : {
          require: "./node_modules/codeceptjs-resemblehelper",
          screenshotFolder : "./output/",
          baseFolder: "./visual-testing/screenshots/base/",
          diffFolder: "./visual-testing/screenshots/diff/"
        }
    },
    include: {
        I: "./steps_file.js",
        loginPage: "./pages/Login.js",
        defaultData: "./utils/defaultData.js",
        registerPage: "./pages/Register.js",
        menu: "./pages/Menus.js",
        profilePage: "./pages/Profile.js",
        subscription: "./pages/Subscription.js",
        recordsPage: "./pages/Records.js",
        account : "./pages/Account.js",
        team:"./pages/Team.js",
        form: "./pages/CreateForm.js"
    },
    bootstrap: true,
    name: "CodeceptJS",
    plugins: {
        allure: {
            enabled: "true"
        }
    },
    mocha: {
        reporterOptions: {
            mochaFile: "./result.xml"
        }
    },
    multiple: {
        parallel: {
            chunks: (files) => {
                return [
                    [ files[0], files[4], files[7], files[10], files[11], files[12], files[13], files[14], files[15], files[19]  ],  // chunk 1
                    [ files[1], files[2], files[3], files[5], files[6], files[8], files[9], files[16], files[17], files[18],  files[20] ], // chunk 2
                ]
            },
        }
    }
}
kobenguyent commented 7 months ago

We sunset run-multiple and it's advisable to use run-workers so closing this for now.