首页 > 解决方案 > cypress - 启动服务器并测试 - 在 React 应用程序上运行 http 模拟服务器和套接字服务器

问题描述

我想用 msw + cypress + start-server-and-test 运行集成测试

1-我有 msw 作为反应应用程序本身的模拟(端口 3000) 2-我在端口 5000 中有一个 socket.io 服务器

我的问题是如何正确运行它以确保 start-server-and-test 将处理我同时尝试过的它。但我不确定这是不是这样

我的 package.json:

    "socket-server": "node test/socket/index.js"
    "start-server": "concurrently \"npm run socket-server\" \"cross-env NODE_ENV=development craco start\"",
    "test:e2e:ci": "start-server-and-test start-server \"3000\"  cypress:headless",

另一个问题是,当我将端口从 3000 更改为不可用时,应用程序卡住并且测试没有关闭应用程序

谢谢

标签: reactjstestingcypresse2e

解决方案


可以通过使用 start-server-and-test 库中的“start-test”修复,以便同时运行套接字服务器 + api 或任何服务器列表,您可以运行以下命令:

start-test <first command> <first resource> <second command> <second resource> <test command>

IE

{
  "scripts": {
    "test": "node src/test",
    "start:api": "node src/api",
    "start:server": "node src/server",
    "test:all": "start-test start:api 3000 start:server 8080 test"
  }
}

这也写在文档中

https://github.com/bahmutov/start-server-and-test


推荐阅读