2016-08-02 3 views
1

Мои тесты дают случайные результаты на Travis. Вот журналы, где мои тесты ничего не держит на Travis:Получение случайных результатов на Travis

https://travis-ci.org/superzaky/node-portfolio-zaky/builds/149718369

А вот журналы, где мои тесты так же проходят на Travis:

https://travis-ci.org/superzaky/node-portfolio-zaky/builds/149560005

Обе ветви содержат один и тот же код ,

И на моем компьютере, я могу также сделать тесты пройдены ссылку на скриншот: http://i.imgur.com/zXOINsD.png

Я также клонировать мой репозиторий на моем ноутбуке. И тесты также проходят .. Я подозреваю, что это что-то делать с тем, как я написал мои испытания в 100-Login.js:

require('../utils'); 
require('events').EventEmitter.prototype._maxListeners = 100; 

var supertest = require("supertest"); 
var should = require("should"); 
var assert = require('chai').assert; 
var app = require('../../app'); 
// This agent refers to PORT where our program is running. 
var server = supertest.agent(app); 
// UNIT test begin 

describe("A user logs in", function() { 
    it('should create a SINGLE session on /api/auth/login POST', function (done) { 
     //calling LOGIN api 
     server 
       .post('/api/auth/login') 
       .send({ 
        username: "jimmy", 
        password: "open" 
       }) 
       .expect("Content-type", /json/) 
       .expect(200) 
       .end(function (err, res) { 
        var data = { 
         _id: "000000000000000000000001", 
         name: "Jimmy Doe", 
         username: "jimmy", 
         admin: false 
        }; 
        res.status.should.equal(200); 
        assert.deepEqual(res.body, data); 
        done(); 
       }); 

    }); 

    it('should display a SINGLE session on /api/auth/ GET', function (done) { 
     //We check if a session is created by sending a GET request to /api/auth 
     server 
       .get('/api/auth/') 
       .expect("Content-type", /json/) 
       .expect(200) 
       .end(function (err, res) { 
        var data = { 
         _id: "000000000000000000000001", 
         name: "Jimmy Doe", 
         username: "jimmy", 
         admin: false 
        }; 
        res.status.should.equal(200); 
        assert.deepEqual(res.body, data); 
        done(); 
       }); 
    }); 

    it('should delete a SINGLE session on /api/auth/logout GET', function (done) { 
     //We check if a session is created by sending a GET request to /api/auth 
     server 
       .get('/api/auth/logout') 
       .expect("Content-type", /json/) 
       .expect(200) 
       .end(function (err, res) { 
        var data = "Successfully logged out"; 
        res.status.should.equal(200); 
        assert.deepEqual(res.body, data); 
        done(); 
       }); 
    }); 

    it('should NOT display a SINGLE session on /api/auth/ GET', function (done) { 
     //We check if a session is created by sending a GET request to /api/auth 
     server 
       .get('/api/auth/') 
       .expect("Content-type", /json/) 
       .expect(404) 
       .end(function (err, res) { 
        var data = "Session not found"; 
        res.status.should.equal(404); 
        assert.deepEqual(res.body, data); 
        done(); 
       }); 
    }); 
}); 

require('events').EventEmitter.prototype._maxListeners = 0; 

А вот фактический код, который сделал тесты проходят ссылку : https://github.com/superzaky/node-portfolio-zaky/blob/travis/controllers/AuthController.js

Но это выглядит хорошо для меня. Кто-нибудь, возможно, знает, как исправить эту проблему?

ответ

0

Вы должны проверить, что находится в вашей локальной базе данных.

Основываясь на других тестах, которые сначала зарегистрировать пользователя с username = john (см this test, строка 20), не будет ни один пользователь с username = jimmy, который является то, что вы используете в качестве имени пользователя верительных при проводке в /api/auth/login в тесте, что (см. this test, строка 18).

Тесты, которые проходят на вашем локальном компьютере, вероятно, проходят, потому что у вас также есть пользователь с именем «jimmy» в вашем локальном db.

Что касается причины неудачи второго теста, он терпит неудачу, потому что тест создания сеанса выходит из строя прямо перед ним, и ожидается, что сессия будет существовать для «jimmy».

+0

Нет. Я создал светильники, которые вставляют «jimmy» сначала перед запуском теста. Ссылка: https://github.com/superzaky/node-portfolio-zaky/blob/master/tests/data/data.js – superkytoz

+0

Я отредактировал свой вопрос. Теперь вы можете прочитать, что Тревис дает мне случайные результаты. Потому что теперь вы можете видеть, что моя ветка, называемая «travis», фактически переходит на Travis. – superkytoz

Смежные вопросы