Тесты транспортира не работают на Codeship из-за ответа API 405

Конфигурация транспортира и скрипты работают должным образом как в нашей локальной среде разработки, так и в среде непрерывной интеграции (аналогично Codeship).

Структура проекта следующая (я описываю статус среды Codeship ниже):

Приложение AngularJS запрашивает данные из сборки REST API с приложением Ruby on rails, используя запросы AJAX.

В нашей конфигурации Codeship мы настраиваем приложение rails, переносим и заполняем базу данных, чтобы все необходимые данные были доступны.

Приложение AngularJS также настроено правильно, поскольку страница входа отображается должным образом (я делаю экран печати, и главная страница загружается правильно).

Имя пользователя и пароль заполняются транспортиром с использованием действительных учетных данных (доступны в базе данных mysql).

Но при нажатии кнопки «Войти» возвращенный ответ от вызова AJAX - это метод 405, запрещенный.

Поскольку мы никогда не сталкивались с подобным ответом в других наших средах, мы полагаем, что он имеет какое-то отношение к конкретной настройке кодового корабля.

Есть мысли, почему API возвращает 405 только при кодировании?

Настройка приведена ниже:

rvm use 2.2.0 --install
cp config/database.codeship.yml config/database.yml
bundle install
export RAILS_ENV="test"
bundle exec rake db:drop RAILS_ENV=test
bundle exec rake db:create RAILS_ENV=test
bundle exec rake db:test:prepare
bundle exec rake db:migrate RAILS_ENV=test
bundle exec rake seed:migrate RAILS_ENV=test
cd frontend && npm install && cd ..
npm install -g grunt-cli
npm install -g http-server
cd frontend && npm install bower && cd ..
cd frontend && bower install && cd ..
cd frontend && grunt build && cd ..
cd frontend && webdriver-manager update --standalone && cd ..
export RAILS_ENV="development"
rake db:structure:load
rake seed:migrate
http-server public -a 127.0.0.1 -p 9000 > /dev/null &
http-server app > /dev/null &
bundle exec rake
cd frontend && grunt test && cd ..

Вот часть снимка экрана, на которой показан ответ API: введите здесь описание изображения


person Ioana Cucuruzan    schedule 21.05.2015    source источник


Ответы (1)


В конце концов, мы решили использовать protractor-rails - в основном используя базовый URL-адрес сервер rails вместо того, чтобы пытаться запустить приложение по другому URL-адресу через grunt. Наша установка теперь выглядит так:

rvm use 2.2.0 --install
cp config/database.codeship.yml config/database.yml
bundle install
# protractor tests
export RAILS_ENV="development"
rake db:structure:load
rake seed:migrate
npm install
webdriver-manager update
bundle exec rake protractor:init RAILS_ENV=development
bundle exec rake protractor:spec RAILS_ENV=development
# rails tests
bundle exec rake db:test:prepare
bundle exec rake db:migrate RAILS_ENV=test
bundle exec rake seed:migrate RAILS_ENV=test
bundle exec rake  
person Ioana Cucuruzan    schedule 13.10.2015