Вы можете избежать переустановить приложение каждый раз , когда вы выполнить тестирование , если вы измените свой app_life_cycle_hooks.rb таким образом:
Before do |scenario|
scenario_tags = scenario.source_tag_names
if scenario_tags.include?('@first')
if scenario_tags.include?('@reinstall')
uninstall_apps
install_app(ENV['TEST_APP_PATH'])
install_app(ENV['APP_PATH'])
end
start_test_server_in_background
end
end
Теперь вы можете использовать тег в ваших сценариях, чтобы решить, когда start_test_server_in_background и когда переустановить приложение. Например, вы можете сделать это:
@first @reinstall @test1
Scenario: Run application reinstalling the app
Given lorem ipsum
When lorem ipsum
Then lorem ipsum
@first @test2
Scenario: Run application WITHOUT reinstalling the app
Given lorem ipsum
When lorem ipsum
Then lorem ipsum
@test1 @test2
Scenario: Other scenario without relaunching app
Given lorem ipsum
When lorem ipsum
Then lorem ipsum
Если вы запускаете тест с @ test1 тегом, кальян будет выполнять сценарии 1 и 3, и приложение будет переустанавливать. А если начать с @ test2 тегом, сценарии 2 и 3 будут запущены без переустановки приложения.