得到TypeError:生成mochawesome报告时,无法使用赛普拉斯读取未定义的属性“ passs”

Jaz*_*are 5 javascript testing mocha.js node.js cypress

我遇到了令人困惑的错误,实际上我不知道如何解决这样的库问题,我试图生成我的赛普拉斯测试用例,以将下面的报告变成我的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"
}
Run Code Online (Sandbox Code Playgroud)

我认为安装它们后没有问题,然后,我运行

柏树奔跑--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)
Run Code Online (Sandbox Code Playgroud)

这是我拥有的stacktrace,有人知道要解决此问题吗?

Dio*_*cha 10

使用mocha版本6.0.0或更高版本时出现相同的错误。

如果可以,请尝试使用version 5.2.0,直到问题解决为止,并且它将正常工作。


小智 5

Mocha 6 需要实例化一个统计收集器

\n\n

i\xe2\x80\x99ve 现已更新、测试并发布了更新的模块,这些模块使用 mocha 6 修复了此问题,但也保留了与 mocha 5 及更早版本的向后兼容性。

\n\n

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

\n\n

针对 Mocha 5 的示例\n针对 Mocha 6 的示例

\n\n

所需的改变是最小的

\n\n

npm i mocha-junit-reporters

\n\n

npm i cypress-multi-reporters

\n\n

在reporterOpts.json中

\n\n
{\n  "reporterEnabled": "mocha-junit-reporters, mochawesome",\n  "mochaJunitReportersReporterOptions": {\n    "mochaFile": "cypress/reports/junit/test_results[hash].xml",\n    "toConsole": false\n  },\n  "mochawesomeReporterOptions": {\n    "reportDir": "cypress/reports/mocha",\n    "quiet": true,\n    "overwrite": false,\n    "html": false,\n    "json": true\n  }\n} \n
Run Code Online (Sandbox Code Playgroud)\n\n

在 cypress.json 中

\n\n
{\n  ...\n  "reporter": "cypress-multi-reporters",\n  "reporterOptions": {\n    "configFile": "reporterOpts.json"\n  }\n
Run Code Online (Sandbox Code Playgroud)\n\n

请参阅https://github.com/YOU54F/cypress-docker-typescript/pull/22/files

\n\n

希望 PR 很快就会合并到源代码库中,但现在,请享受

\n

  • 我们可以将记者配置包含在“cypress.json”中,而不是添加无关的文件吗? (2认同)