Gitlab Pipeline执行Cypress时报invalid reporter '[object Object]'错误求助
本地运行正常,Gitlab Pipeline推送后报invalid reporter '[object Object]'错误
本地终端运行Cypress测试相关命令一切正常,但推送代码到Gitlab Pipeline后,出现invalid reporter '[object Object]'错误。以下是相关配置文件及报错信息:
.gitlab-ci.yml 配置
stages: - build - test ## Set environment variables for folders in "cache" job settings for npm modules and Cypress binary variables: npm_config_cache: '$CI_PROJECT_DIR/.npm' CYPRESS_CACHE_FOLDER: '$CI_PROJECT_DIR/cache/Cypress' cache: key: ${CI_COMMIT_REF_SLUG} paths: - .cache/* - cache/Cypress - node_modules - build ## Install NPM dependencies and Cypress install: image: cypress/browsers:node18.12.0-chrome106-ff106 stage: build script: - npm install test-file: image: cypress/browsers:node18.12.0-chrome106-ff106 stage: test script: # start the server in the background - npm start & # run Cypress tests in parallel - npx cypress run --reporter-options reportDir="cypress/results",overwrite=false,html=false,json=true - npx mochawesome-merge "cypress/results/*.json" > mochawesome.json - npx marge mochawesome.json
cypress.config.js 配置
reporter: 'mochawesome', reporterOptions: { reportDir: 'cypress/results', overwrite: false, html: false, json: true, },
Gitlab流水线报错信息
invalid reporter '[object Object]' TypeError: invalid reporter '[object Object]' at createInvalidReporterError (<embedded>:2965:139888) at k.reporter (<embedded>:2970:3431) at new k (<embedded>:2970:1480) at S.setRunnables (<embedded>:4515:15044) at Object.onTestsReceivedAndMaybeRecord (<embedded>:4562:27485) at p.<anonymous> (<embedded>:4515:45115) at p.emit (node:events:513:28) at <embedded>:4515:24385 '[object Object]' reporter not found
解决方法
问题根因
同时在cypress.config.js中配置了reporter和reporterOptions,又在Gitlab CI的命令行中通过--reporter-options传递参数,导致Cypress解析reporter配置时出现冲突,错误地将reporter识别为对象而非字符串名称。
可选修复方案
方案一:移除命令行中的
--reporter-options参数
完全使用cypress.config.js中的配置,修改test-file阶段的脚本:- npx cypress run方案二:移除配置文件中的reporter相关配置
删除cypress.config.js里的reporter和reporterOptions代码块,同时在命令行中补充--reporter mochawesome参数:- npx cypress run --reporter mochawesome --reporter-options reportDir="cypress/results",overwrite=false,html=false,json=true
内容的提问来源于stack exchange,提问作者Bibek Kharel
相关产品推荐
相关产品推荐

