我想在我的CI环境(solano-ci)上运行newman

newman是运行邮递员收藏中的请求的工具。

我的newman中有一个package.json脚本,还有一个npm start脚本可以在localhost:3000处启动服务器。

newman已经配置了环境变量以测试端口localhost:3000上的端点。

问题是我需要一个脚本来启动服务器(npm start),然后运行npm run newman。但是,在服务器可用与newman运行之间有一个延迟。如果newman在服务器可用之前运行,则每次测试都会导致错误。

Error: connect ECONNREFUSED 127.0.0.1:3000


现在,这是我尝试使用run-p的方法,它可以并行启动两个进程。然后,我必须使用sleep并设置任意数量的等待时间,以确保服务器已准备就绪。

"newman": "newman -c ./postman/api.postman_collection.json -e ./postman/local.postman_environment.json",
"newman-sleep": "sleep 10 && npm run newman",
"newman-server": "run-p start newman-sleep"

最佳答案

您可以使用wait-on包。

npm install --save-dev wait-on


然后,

"newman-sleep": "wait-on http://localhost:3000 && npm run newman"

09-11 14:52