2016-07-19 2 views
0

Когда я запускаю тесты ниже, отдельно (путем комментирования), каждый тест проходит. Однако, когда я запускаю все тесты, я получаю исключение XmlHttpRequest. Учтивый тестовый сервер принимает запросы и протоколирование не показывает никаких ошибок или проблем:Невозможно выполнить несколько тестов кармы с использованием автономного сервера

var HOME_URL = "http://localhost:3000/request"; 

it("should echo the test request with response", function (done) { 
    var test = { act: 'test1', qry: {} }; 

    var promise = webix.ajax().post(HOME_URL, JSON.stringify(test)); 

    console.log('test1'); 
    promise.then(function (resp) { 
     expect(resp.json().succ).to.be(true); 
     done(); 
    }).fail(function (err) { 
     done(); 
     throw(err); 
    }); 

}); 


it("should echo the test request with response 2", function (done) { 
    var test = { act: 'test2', qry: {} }; 

    var promise = webix.ajax().post(HOME_URL, JSON.stringify(test)); 

    console.log('test2'); 
    promise.then(function (resp) { 
     expect(resp.json().succ).to.be(true); 
     done(); 
    }).fail(function (err) { 
     console.log('echo test error', app.util.inspect(promise)); 
     done(); 
     throw(err); 
    }); 

}); 

Любые идеи, что проблема может быть или как отлаживать эти тесты?

Чтобы запустить код самостоятельно (мерзавец узел и НПМ должны быть установлены):

git clone http://github.com/halcwb/GenUnitApp.git cd GenUnitApp git checkout failingServer scripts/run.sh

Открыть второй терминал

./build.sh clienttests

Когда вниз голосования, пожалуйста, объясните, я могу потом улучшите мой вопрос.

ответ

0

Для тех, кто работает в этом, вы можете гнездо Аякса вызовы в функции до и в дальнейшем использовать свои обещания (webix.ajax возвращает обещание) в ваших тестах, таких как:

var HOME_URL = "http://localhost:3000/request"; 
var test1, test2; 

before(function() { 
    var req = { act: 'test1', qry: {}}; 

    test1 = webix.ajax().post(HOME_URL, JSON.stringify(req)); 
    req.act = "test2"; 
    test2 = webix.ajax().post(HOME_URL, JSON.stringify(req)); 
}); 

it("should echo the test request with response", function (done) { 
    var promise = test1; 

    promise.then(function (resp) { 
     expect(resp.json().succ).to.be(true); 
     done(); 
    }).fail(function (err) { 
     done(); 
     throw(err); 
    }); 

}); 


it("should echo the test request with response 2", function (done) { 
    var promise = test2; 

    promise.then(function (resp) { 
     expect(resp.json().succ).to.be(true); 
     done(); 
    }).fail(function (err) { 
     done(); 
     throw(err); 
    }); 

}); 

Пожалуйста, объясните, когда вниз голосовать, я стараюсь учиться.

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