Я погуглил, но не смог найти каких-либо конкретных вопросов, связанных с моим вопросом.Это отсутствие проблем заставляет меня поверить, что это проблема с моей конкретной сборкой.
Я недавно добавил socket.io в сторонний проект, просто чтобы немного поэкспериментировать с веб-сокетами.До добавления 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 для редактирования заголовка