当尝试使用cucumber-js运行node(TypeScript)服务的集成测试时,我无法运行测试。具体来说,当运行它们时,它们会编译(如果我们有编译错误,它会显示),但测试根本不执行。它们在特征文件本身中不被标记为@ignore。如图所示:
enter image description here
我已经尝试做了很多事情来调试/解决这个问题,我发现问题在于stepDefinitions。当没有步骤定义存在时,我得到成功消息(0个场景0个步骤成功通过)。似乎包含任何类型的cucumber函数(Given/When/Then/Before/After等)都会使测试无法运行。
你知道该怎么做吗
基本上我什么都试过了。再次克隆存储库,卸载并安装cucumber,更改IDE,删除某些测试,删除节点模块几次(在调整package.json之后)并再次运行npm install,手动从依赖项和devDependencies中删除cucumber以及更多我甚至无法回忆的内容。
这是我包.json:
{“name”:“promotions-service”,“version”:“1.0.0”,“description”:“",“脚本”:{“start:build”:“tsc -w”,“start:run”:“nodemon -r dotenv/config dist/server.js”,“gcp-build”:“tsc -p .",“开始”:“npm run swagger && npm run start-concurrently”,“start-concurrently”:“concurrently npm:start:*",“swagger”:“tsoa规范”,“测试”:“jest --coverage”,“test:watch”:“jest --watch”,“integration-test”:“cucumber-js”,“docker-build”:“docker build .",“docker-compose”:“docker compose up”,“docker-compose-local”:“docker-compose -f docker-compose-local.yml up -d”,“docker-compose-rebuild”:“docker compose up --build”},“keywords”:[],“作者”:“",“许可证”:“ISC”,“dependencies”:{“@automapper/core”:“^8.7.5”,“@automapper/pojos”:“^8.7.5”,“@google-cloud/pubsub”:“^3.1.0”,“ajv”:“^8.8.2”,“ajv-formats”:“^2.1.1”,“body-parser”:“^1.20.2”,“cls-hooked”:“^4.2.2”,“ cucumber ”:“^6.0.7”,“dd-trace”:“^3.5.0”,“event-stream”:“^4.0.1”,“express”:“^4.17.1”,“express-async-handler”:“^1.2.0”,“express-http-context”:“^1.2.4”,“firebase-admin”:“^11.0.1”,“js-convert-case”:“^4.2.0”,“moment”:“^2.29.4”,“optimove.node.microservice.featureflagmanager”:“^1.0.10”,“optimove.node.microservice.logger”:“^1.1.10”,“pg”:“^8.7.3”,“pg-types”:“^4.0.0”,“reflect-metadata”:“^0.1.13”,“swagger-ui-express”:“^4.2.0”,“tsmediator”:“^0.1.5”,“tsoa”:“^3.14.1”,“tsyringe”:“^4.6.0”,“typescript-string-operations”:“^1.4.1”,“unleash-client”:“^3.10.2”,“uuid”:“^9.0.0”,“winston”:“^3.3.3”},“devDependencies”:{“@cucumber/cucumber”:“^9.2.0”,“@types/chai”:“^4.3.0”,“@types/event-stream”:“^4.0.0”,“@types/express”:“^4.17.13”,“@types/jest”:“^27.0.3”,“@types/node”:“^16.18.12”,“@types/pg”:“^8.6.5”,“@types/supertest”:“^2.0.11”,“@types/swagger-ui-express”:“^4.1.3”,“@typescript-eslint/eslint-plugin”:“^5.6.0”,“@typescript-eslint/parser”:“^5.6.0”,“chai”:“^4.3.4”,“并发”:“^6.4.0”,“dotenv”:“^10.0.0”,“eslint”:“^7.32.0”,“eslint-config-airbnb-base”:“^15.0.0”,“eslint-config-airbnb-typescript”:“^17.0.0”,“eslint-config-prettier”:“^8.6.0”,“eslint-plugin-prettier”:“^4.2.1”,“jest”:“^27.4.4”,“nodemon”:“^2.0.15”,“更漂亮”:“2.5.1”,“supertest”:“^6.2.4”,“ts-jest”:“^27.1.1”,“ts-node”:“^10.4.0”,“typescript”:“^4.5.2”} }
如果有任何数据丢失让我知道,我会上传whatver是失踪!谢谢大家!
1条答案
按热度按时间5hcedyr01#
问题解决了!最终,我们在代码中使用的某个包(日志包)是错误的。其导入已损坏并产生运行时错误。