Websockets可能会干扰Travis-CI

时间:2018-05-29 17:24:25

标签: javascript node.js reactjs socket.io travis-ci

我已经google了一下,但未能找到与我的问题相关的任何具体问题。缺乏问题让我相信这是我特定构建的一个问题。

我最近将socket.io添加到一个侧面项目中,只是为了尝试一下websockets。在添加socket.io之前,我的Travis构建没有任何问题;然而,我的Travis构建的后插座将遍历动作并显示通过测试,直到10分钟超时为止。

我正在使用Node和React。我正在运行的测试命令是"test": "react-scripts test --env=jsdom"测试套件只是组件的基本烟雾测试和一些内容检查。如果需要,我可以分享测试套件,但由于测试都显示为在Travis中传递,我认为没有必要分享。

什么会导致我的Travis构建挂起?据我所知,在我的研究中,除非你直接测试插座,否则它们不应该干扰特拉维斯。我还没有为套接字或使用它们的任何组件添加任何测试。

这是我的 server.js:

const express = require("express");
const bodyParser = require("body-parser");
const path = require("path");
const passport = require('passport')
const PORT = process.env.PORT || 3001;
const changeCat = require("./utils/randomCat");
const routes = require("./routes");
const authCheckMiddleware = require("./server/middleware/auth-check");
const FacebookTokenStrategy = require('passport-facebook-token');
let config;
if(process.env.MONGODB_URI) {
  config = process.env
} else {
  config = require("./config/index");
}

const app = express();

//...server logic...//

const server = app.listen(PORT, function() {
  console.log(` ==> Server now on port ${PORT}!`);
});

let user = {
  userCount: 0,
  activeUsers: 0
};
const io = require("socket.io").listen(server);
io.on('connection', (socket) => { 
  user.userCount++;
  socket.emit("broadcast", user);

  socket.on("disconnect", () => {
    user.userCount--;
    user.activeUsers--;
    socket.emit("broadcast", user);
  });

  socket.on("deactivateUser", () => {
    user.activeUsers--
    socket.emit("broadcast", user);
  });

  socket.on("activateUser", () => {
    user.activeUsers = user.userCount
    socket.emit("broadcast", user);
  });

  setInterval(() => socket.emit("broadcast", user),1000);

  socket.on("error", err => {
    console.log(`Received error from user: ${socket.id}`);
    console.log(err);
  });

  socket.on('connect_failed', err => {
    console.log(err)
    console.log("connect failed")
  });
});

最后,我的 .travis.yml

language: node_js

node_js:
  - "stable"

before_script: 
  - cd client
  - npm install

script:
  - npm run test

项目快速简化: 它基本上是一个测验应用程序,每5分钟运行一次测验,每次都有不同的类别。

编辑@ 1:25P编辑标题

0 个答案:

没有答案