Got TypeError: Невозможно прочитать свойство 'pass' of undefined с помощью Cypress при создании mochawesome отчета - PullRequest
4 голосов
/ 13 марта 2019

я получил сбивающую с толку ошибку, на самом деле я не знаю, как решить проблему с библиотекой, подобную этой, я попытался сгенерировать мой тестовый кипарис для убедительного отчета ниже, это мой 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)

это трассировка стека, которую я получил, кто-нибудь знает, чтобы решить эту проблему?

Ответы [ 2 ]

7 голосов
/ 13 марта 2019

Я получил ту же ошибку при использовании mocha версия 6.0.0 или выше.

Если вы можете, попробуйте использовать версию 5.2.0, пока проблема не будет решена, и она будет работать нормально.

2 голосов
/ 04 июня 2019

Мокко 6 требует создания инстанса для сбора статистики

Теперь я обновил, протестировал и выпустил обновленные модули, которые исправляют это с mocha 6, но также сохраняют обратную совместимость с mocha 5 и более ранними версиями.

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

Пример против Мокко 5 Пример против Мокко 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 скоро будут объединены с репо-источником, но пока, наслаждайтесь

...