Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Got TypeError: Cannot read property 'passes' of undefined using Cypress when generating mochawesome report

i got confusing error, actually i don't know to how to solve a library issue like this, i tried to generate my cypress test case to mochawesome report below are my package.json setup file

{
"devDependencies": {
    "cypress": "^3.1.5",
    "mocha": "^6.0.2",
    "mocha-junit-reporter": "^1.18.0",
    "mocha-multi-reporters": "^1.1.7",
    "mochawesome": "^3.1.1",
    "mochawesome-merge": "^1.0.7",
    "mochawesome-report-generator": "^3.1.5"
}

i think there is nothing problem after i installed them, then, i do run

cypress run --reporter mochawesome

Then test completed, after that BOOM, i encountered error like this

TypeError: Cannot read property 'passes' of undefined
at Spec.Base.epilogue (/Users/mac/project-cypress/node_modules/mocha/lib/reporters/base.js:318:25)
at Object.onceWrapper (events.js:316:30)
at emitOne (events.js:120:20)
at Runner.emit (events.js:210:7)
at Reporter.emit (/Users/mac/Library/Caches/Cypress/3.1.5/Cypress.app/Contents/Resources/app/packages/server/lib/reporter.js:239:55)
at Object.server.startWebsockets.onMocha (/Users/mac/Library/Caches/Cypress/3.1.5/Cypress.app/Contents/Resources/app/packages/server/lib/project.js:296:22)
at Socket.<anonymous> (/Users/mac/Library/Caches/Cypress/3.1.5/Cypress.app/Contents/Resources/app/packages/server/lib/socket.js:237:36)
at emitTwo (events.js:125:13)
at Socket.emit (events.js:213:7)
at /Users/mac/Library/Caches/Cypress/3.1.5/Cypress.app/Contents/Resources/app/packages/socket/node_modules/socket.io/lib/socket.js:503:12
at _combinedTickCallback (internal/process/next_tick.js:131:7)
at process._tickCallback (internal/process/next_tick.js:180:9)

TypeError: Cannot read property 'passes' of undefined
at Spec.Base.epilogue (/Users/mac/project-cypress/node_modules/mocha/lib/reporters/base.js:318:25)
at Object.onceWrapper (events.js:316:30)
at emitOne (events.js:120:20)
at Runner.emit (events.js:210:7)
at Reporter.emit (/Users/mac/Library/Caches/Cypress/3.1.5/Cypress.app/Contents/Resources/app/packages/server/lib/reporter.js:239:55)
at Object.server.startWebsockets.onMocha (/Users/mac/Library/Caches/Cypress/3.1.5/Cypress.app/Contents/Resources/app/packages/server/lib/project.js:296:22)
at Socket.<anonymous> (/Users/mac/Library/Caches/Cypress/3.1.5/Cypress.app/Contents/Resources/app/packages/server/lib/socket.js:237:36)
at emitTwo (events.js:125:13)
at Socket.emit (events.js:213:7)
at /Users/mac/Library/Caches/Cypress/3.1.5/Cypress.app/Contents/Resources/app/packages/socket/node_modules/socket.io/lib/socket.js:503:12
at _combinedTickCallback (internal/process/next_tick.js:131:7)
at process._tickCallback (internal/process/next_tick.js:180:9)

this is the stacktrace i've got, did anyone know to solve this issues?

like image 595
Jazzware Avatar asked Mar 13 '19 09:03

Jazzware


2 Answers

I got the same error when using mocha version 6.0.0 or above.

If you could, try using version 5.2.0, until the problem is solved, and it will work fine.

like image 118
Diogo Rocha Avatar answered Sep 29 '22 04:09

Diogo Rocha


Mocha 6 requires a stat collector to be instantiated

i’ve now updated, tested and released updated modules that fix this with mocha 6, but also retains backwards compatibility with mocha 5 and earlier versions.

https://www.npmjs.com/package/cypress-multi-reporters https://www.npmjs.com/package/mocha-junit-reporters

Example against Mocha 5 Example against Mocha 6

the changes required are minimal

npm i mocha-junit-reporters

npm i cypress-multi-reporters

in reporterOpts.json

{
  "reporterEnabled": "mocha-junit-reporters, mochawesome",
  "mochaJunitReportersReporterOptions": {
    "mochaFile": "cypress/reports/junit/test_results[hash].xml",
    "toConsole": false
  },
  "mochawesomeReporterOptions": {
    "reportDir": "cypress/reports/mocha",
    "quiet": true,
    "overwrite": false,
    "html": false,
    "json": true
  }
} 

in cypress.json

{
  ...
  "reporter": "cypress-multi-reporters",
  "reporterOptions": {
    "configFile": "reporterOpts.json"
  }

See https://github.com/YOU54F/cypress-docker-typescript/pull/22/files

Hopefully the PR's will be merged in the source repo's soon but for now, enjoy

like image 33
YOU54F Avatar answered Sep 29 '22 06:09

YOU54F