2015-07-31 2 views
0

Я имею дело с огромной базой кода, где функции сгруппированы по домену и хранятся в отдельных пакетах.Организация шагов огурца

+ ServicesDomain
        | --- + имеет
                  | + step_definitions

+ SalesDomain
        | --- + имеет
                  | + step_definitions

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

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

ответ

0

Один из способов сделать это - настроить файл с именем features/support/env.rb и добавить в этот файл инструкцию 'require', чтобы каждый раз включать ваши общие действия. Например, файл может содержать:

require File.join(File.dirname(__FILE__), ​'..'​, ​'common'​, ​'common_steps'​) 

Таким образом, ваш common_steps.rb будет загружаться каждый раз.

env.rb - это первый файл, который будет запускаться при каждом прогоне огурца.

Вы также слышали о драгоценности Pickle? Возможно, стоит посмотреть, как он делает что-то подобное, поместив общие шаги в файл под названием pickle_steps.rb. Это связано с удобными определениями шагов для тестирования моделей, но не было бы ничего, что могло бы остановить редактирование этого файла и добавить его.

Надеюсь, что это поможет?

+0

Спасибо! Это сработало. Я также взял его на другой уровень, создав библиотеку GenericSteps и импортировав lib из env.rb. –

0

Cucumber имеет опцию командной строки -r, которая позволяет вам включать определенные файлы. Если вы запустите cucumber --help, вы можете получить дополнительную информацию обо всех параметрах командной строки. В рубине вы можете комбинировать это с файлом config.yml, чтобы настроить глобально, как огурец запускается в проекте. Однако я подозреваю, что вы используете java, и я не знаю, применимо ли это. Вы можете спросить в списке рассылки огурцов, если это так.

Альтернативой является размещение файла в каждом каталоге поддержки, например. ServicesDomain/features/support и SalesDomian/features/support, которые просто требуют инструкции, которая тянет все общие шаги. Cucumber автоматически загружает все файлы в features/support (когда он запускается с features/..).

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