J'ai eu une erreur déroutante, en fait je ne sais pas comment résoudre un problème de bibliothèque comme celui-ci, j'ai essayé de générer mon cas de test de cyprès au rapport mochawesome ci-dessous sont mon fichier d'installation 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"
}

Je pense qu'il n'y a rien de problème après les avoir installés, alors, je cours

cypress run --reporter mochawesome

Puis test terminé, après ce BOOM, j'ai rencontré une erreur comme celle-ci

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)

C'est le stacktrace que j'ai, est-ce que quelqu'un savait pour résoudre ces problèmes?

6
Jazzware 13 mars 2019 à 12:29

2 réponses

Meilleure réponse

J'ai eu la même erreur lors de l'utilisation de mocha version 6.0.0 ou supérieure.

Si vous le pouvez, essayez d'utiliser la version 5.2.0, jusqu'à ce que le problème soit résolu, et cela fonctionnera correctement.

9
Diogo Rocha 13 mars 2019 à 10:15

Mocha 6 nécessite l'instanciation d'un collecteur de statistiques

J'ai maintenant mis à jour, testé et publié des modules mis à jour qui corrigent ce problème avec mocha 6, mais conservent également la rétrocompatibilité avec mocha 5 et les versions antérieures.

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

Exemple contre Moka 5 Exemple contre Moka 6

Les changements requis sont minimes

npm i mocha-junit-reporters

npm i cypress-multi-reporters

Dans 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
  }
} 

Dans cypress.json

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

Voir https://github.com/YOU54F/cypress-docker-typescript /pull/22/fichiers

Espérons que les PR seront bientôt fusionnés dans le référentiel source, mais pour l'instant, profitez

4
YOU54F 4 juin 2019 à 12:44