Вы не поделились многими деталями, поэтому я постараюсь ответить на высоком уровне.может быть, это полезно.
:request
Тип спецификации не запустит сервер для вас (он предназначен для тестирования полного стека, включая маршрутизацию, но не включая фактический HTTP-запрос)
:feature
require's capybara
, и вы делаете запросы, например, используя visit
метод.Capybara запустит сервер и выполнит HTTP-запрос через безголовый Chrome или другой клиент.Но ваш Job
, вероятно, не знает, что он должен использовать другой сервер
Если вы использовали капибару, вы можете получить текущий порт, это объясняется в этом вопросе Cucumber/ Capybara - как получить хост и порт текущего исполнения (не забывайте упомянуть это, если полезно) И найдите способ передать эту информацию в работу, которую вы пытаетесь протестировать.
В общем случае сквозные тесты сложны, когда у вас есть асинхронный компонент.Как долго вы должны ждать, пока проявится фоновое задание, и когда его объявлять failed
?
Кроме того, странно, что ваша работа сталкивается с HTTP-сервером ... к нему должен быть более легкий доступк самим объектам приложения, нет?
Если это не другой сервер приложений.Затем вам просто нужно убедиться, что он работает (как зависимость), точно так же, как вы убедитесь, что сервер БД работает, прежде чем запускать спецификации.