Тест CucumberJs с вавилонским тестом не удался из-за тайм-аута
У меня есть API, написанный на ES6, запущенный с babel, который работает без проблем. Я использую cucumberJS, чтобы создать два сценария для тестирования одного маршрута API. Я запустил тест, используя ES5, и запустил его классически ./node-modules/.bin/cucumber-js
Это моя версия ES5, работающая без проблем
const chai = require('chai');
const expect = chai.expect;
const request = require('request').defaults({json: true});
var httpResponse = {};
const API_BASE_URL = 'http://localhost:3000';
module.exports = function () {
this.When(/^I GET (.*)$/, function(path, callback) {
request.get(API_BASE_URL + path, function(error, response, body) {
httpResponse = {error: error, response: response, body: body};
callback();
});
});
this.Then(/^I should receive a ([1-5][0-9][0-9]) HTTP status code$/, function(statusCode, callback) {
expect(httpResponse).to.have.property('response');
expect(httpResponse.response.statusCode).to.equal(parseInt(statusCode));
callback();
});
};
2 scenarios (2 passed)
4 steps (4 passed)
0m00.135s
Я переписываю свой тест, используя ES6, и добавлен параметр --compiler js:babel-registrer.
module.exports = function () {
this.When(/^I GET (.*)$/, (path, callback) => {
request.get(`${API_BASE_URL}${path}`, (error, response, body) => {
this.http = { error, response, body };
callback();
});
});
this.Then(/^I should receive a ([1-5][0-9][0-9]) HTTP status code$/, (statusCode, callback) => {
expect(this).to.have.property('http');
expect(this.http.response.statusCode).to.equal(parseInt(statusCode));
callback();
});
};
Тем не менее, на этот раз тест не пройден во время выполнения этого. Во время первого scneario, сообщающего мне, что время ожидания истекло.
Scenario: Listing users # features/users.feature:5
Given I GET /users # features/step_definitions/api.js:12
Error: Step timed out after 5000 milliseconds
at Timer.listOnTimeout [as ontimeout] (timers.js:112:15)
Then I should receive a 200 HTTP status code # features/step_definitions/api.js:20
Scenario: Getting user # features/users.feature:9
Given I GET /users/1 # features/step_definitions/api.js:12
Then I should receive a 200 HTTP status code # features/step_definitions/api.js:20
Failing scenarios:
features/users.feature:5 # Scenario: Listing users
2 scenarios (1 failed, 1 passed)
4 steps (1 failed, 1 skipped, 2 passed)
0m00.310s
Любой совет? Вавилонская проблема с транспиляцией?