2015-09-11 6 views
1

Я пытаюсь проверить мой JS код на CircleCI используя мокко, но получаю следующее сообщение об ошибке в самом начале тестирования:функции мокко перед() терпит неудачу при использовании в CircleCI

Sample test suite 
    1) "before all" hook: applyFixture 

0 passing (77ms) 
1 failing 

1) Sample test suite "before all" hook: applyFixture: 
StatusCodeError: 404 - {"message":"Not Found"} 
    at _stream_readable.js:943:16 

sample_test.js файл:

describe('Sample test suite', function() { 

    before(function applyFixture() { 
    var options = { 
     uri: 'http://localhost:8000/sampleRoute', 
     method: 'POST', 
     headers: {'Content-Type': 'application/x-www-form-urlencoded'}, 
     form: {dataset: 'test_dataset'}, 
     resolveWithFullResponse: true 
    }; 

    return rp(options) 
     .then(function(response) { 
      if (response.statusCode === 200) { 
       console.log('ready for testing!'); 
      } else { 
       throw new Error('failed to load'); 
      } 
     }); 
}); 

следующий код работает отлично локально. Он также будет работать над CircleCI, если я включу код из блока before в первый тест. localhost:8000/sampleRoute также доступен перед началом тестирования.

Не знаю, как устранить эту проблему ...

+0

Что вы ожидаете подавать на порт 8000? Вы уверены, что CircleCI запускает ваш сервер, что бы это ни было? – ssube

+0

@ssube Мне нужно получить образец html-страницы в качестве ответа при попытке получить доступ к 'locahost: 8000/sampleRoute'. Я считаю, что CircleCI запускает его правильно. это то, как я тестирую (в файле 'circle.yml'), если сервер полностью запущен:' 'while! curl -sSf http: // localhost: 8000/sampleRoute &>/dev/null; sleep sleep 2; done" '. – Timka

ответ

-1

Тогда вопрос был с заголовком запроса. Мне нужно было указать токен аутентификации, чтобы правильно выполнять POST-запросы. Это не связано с CircleCI.

Ниже собственно options объект, который работал:

var options = { 
    uri: 'http://localhost:8000/sampleRoute', 
    method: 'POST', 
    headers: { 
     authorization: 'authorizationToken' 
    }, 
    form: {dataset: 'test_dataset'}, 
    resolveWithFullResponse: true 
}; 
Смежные вопросы