Got TypeError: Cannot read property 'passes' of undefined using Cypress when generating mochawesome report
Got TypeError: Cannot read property 'passes' of undefined using Cypress when generating mochawesome report
我遇到了令人困惑的错误,实际上我不知道如何解决这样的库问题,我尝试生成我的 cypress 测试用例以向 mochawesome 报告,下面是我的 package.json 安装文件
{
"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"
}
我觉得安装后没有问题,
然后,我 运行
cypress run --reporter mochawesome
然后测试完成,然后BOOM,我遇到了这样的错误
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)
这是我得到的堆栈跟踪,有人知道如何解决这个问题吗?
我在使用 mocha
版本 6.0.0
或更高版本时遇到同样的错误。
如果可以,请尝试使用版本5.2.0
,直到问题解决,它会正常工作。
Mocha 6 需要实例化统计收集器
我现在已经更新、测试并发布了更新的模块,这些模块用 mocha 6 修复了这个问题,但也保留了与 mocha 5 和更早版本的向后兼容性。
https://www.npmjs.com/package/cypress-multi-reporters
https://www.npmjs.com/package/mocha-junit-reporters
Example against Mocha 5
Example against Mocha 6
所需的更改很少
npm i mocha-junit-reporters
npm i cypress-multi-reporters
在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
}
}
在cypress.json
{
...
"reporter": "cypress-multi-reporters",
"reporterOptions": {
"configFile": "reporterOpts.json"
}
见https://github.com/YOU54F/cypress-docker-typescript/pull/22/files
希望 PR 将很快合并到源代码库中,但现在,享受
我遇到了令人困惑的错误,实际上我不知道如何解决这样的库问题,我尝试生成我的 cypress 测试用例以向 mochawesome 报告,下面是我的 package.json 安装文件
{
"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"
}
我觉得安装后没有问题, 然后,我 运行
cypress run --reporter mochawesome
然后测试完成,然后BOOM,我遇到了这样的错误
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)
这是我得到的堆栈跟踪,有人知道如何解决这个问题吗?
我在使用 mocha
版本 6.0.0
或更高版本时遇到同样的错误。
如果可以,请尝试使用版本5.2.0
,直到问题解决,它会正常工作。
Mocha 6 需要实例化统计收集器
我现在已经更新、测试并发布了更新的模块,这些模块用 mocha 6 修复了这个问题,但也保留了与 mocha 5 和更早版本的向后兼容性。
https://www.npmjs.com/package/cypress-multi-reporters https://www.npmjs.com/package/mocha-junit-reporters
Example against Mocha 5 Example against Mocha 6
所需的更改很少
npm i mocha-junit-reporters
npm i cypress-multi-reporters
在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
}
}
在cypress.json
{
...
"reporter": "cypress-multi-reporters",
"reporterOptions": {
"configFile": "reporterOpts.json"
}
见https://github.com/YOU54F/cypress-docker-typescript/pull/22/files
希望 PR 将很快合并到源代码库中,但现在,享受