如何在 circleci 上运行 websocket 测试

时间:2021-03-24 13:18:28

标签: node.js typescript continuous-integration circleci

我有一个用打字稿编写的节点应用程序。我正在尝试在圆 ci 上运行测试。我可以连接 redis 服务器,如下所示

> env NODE_ENV=test jest --runInBand --detectOpenHandles --ci

  console.log
    Server is running on PORT 4000

      at Server.<anonymous> (src/index.ts:51:60)

  console.log
    Redis connected!

但其他一切都失败了。

 console.log
    socket1 failed on startup for test 1. Retrying...

      at tests/events.test.ts:147:17

  console.log
    restarted

      at setupSockets (tests/events.test.ts:79:21)

  console.log
    socket1 failed on startup for test 1. Retrying...

      at tests/events.test.ts:147:17

  console.log
    restarted

      at setupSockets (tests/events.test.ts:79:21)

这是运行测试的 package.json

 "scripts": {
    "test": "env NODE_ENV=test jest --runInBand --detectOpenHandles --ci",

这些是一些测试

describe("Control test for socket.io", () => {
  test("server should communicate to client.", (done) => {
    setTimeout(() => {
      sockets[0].once("test", (msg: string) => {
        expect(msg).toBe("Hello World");
        done && done();
      });
      SC[0].emit("test", "Hello World");
    }, 100);
  });

  test("client should communicate to server.", (done) => {
    setTimeout(() => {
      SC[1].on("test", (msg) => {
        done && done();
        expect(msg).toBe("Hello Server");
      });
      sockets[1].emit("test", "Hello Server");
    }, 100);
  });
});

0 个答案:

没有答案