2016-08-02 9 views
1

私のテストでは、Travisでランダムな結果が得られます。ここに私のテストがトラヴィスに失敗したログです:Travisでランダムな結果を得る

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

両方のブランチは、まったく同じコードが含まれています。

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

そしてここでは、私のテストはトラヴィスに合格したログがあります。

そして、私のコンピュータ上で私はまた、テストは、スクリーンショットへのリンクを渡すことができます:http://i.imgur.com/zXOINsD.png

私は私のラップトップ上で、私のリポジトリをもクローン化されていました。

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; 

そして、ここではテストがリンクを通らせた実際のコードです:そしてテストも..私はそれが私が100-Login.jsに 私のテストを書いていた方法とは何かを持っている疑いが合格します:https://github.com/superzaky/node-portfolio-zaky/blob/travis/controllers/AuthController.js

しかし、それは私にはうまく見えます。おそらくこの問題を解決する手がかりを持っている人なら誰でも?

答えて

0

ローカルデータベースの内容を確認する必要があります。

当初username = johnでユーザーを登録あなたの他のテスト、(this test、ライン20を参照)に基づいて、というテストに/api/auth/loginに投稿するときにユーザー名資格情報として使用するものであるusername = jimmyとは、ユーザー、存在しません失敗する(this test、行18を参照)。

あなたのローカルマシンに "jimmy"という名前のユーザーがいるため、ローカルマシンを通過するテストはおそらく失敗します。

2番目のテストが失敗する理由は、セッション作成テストが直前に失敗し、 "jimmy"のセッションが存在すると予想されるためです。

+0

いいえテストを実行する前にまず「ジミー」を挿入するフィクスチャを作成しました。リンク:https://github.com/superzaky/node-portfolio-zaky/blob/master/tests/data/data.js – superkytoz

+0

私は自分の質問を編集しました。トラヴィスが私にランダムな結果を与えるのを読むことができます。トラビスという名前の私の支店がトラビスを実際に通過しているのを見ることができるからです。 – superkytoz

関連する問題