Create directory for features

Took 1 hour 5 minutes
This commit is contained in:
Daniel Schädler 2018-12-11 15:12:07 +01:00
parent c8706af307
commit 941c04e760
3 changed files with 103 additions and 0 deletions

View File

@ -0,0 +1,5 @@
require 'selenium-cucumber'
# Do Not Remove This File
# Add your custom steps here
# $driver is instance of webdriver use this instance to write your custom code

51
features/support/env.rb Normal file
View File

@ -0,0 +1,51 @@
require 'rubygems'
require 'selenium-cucumber'
# Store command line arguments
$browser_type = ENV['BROWSER'] || 'ff'
$platform = ENV['PLATFORM'] || 'desktop'
$os_version = ENV['OS_VERSION']
$device_name = ENV['DEVICE_NAME']
$udid = ENV['UDID']
$app_path = ENV['APP_PATH']
# check for valid parameters
validate_parameters $platform, $browser_type, $app_path
# If platform is android or ios create driver instance for mobile browser
if $platform == 'android' or $platform == 'iOS'
if $browser_type == 'native'
$browser_type = "Browser"
end
if $platform == 'android'
$device_name, $os_version = get_device_info
end
desired_caps = {
caps: {
platformName: $platform,
browserName: $browser_type,
versionNumber: $os_version,
deviceName: $device_name,
udid: $udid,
app: ".//#{$app_path}"
},
}
begin
$driver = Appium::Driver.new(desired_caps).start_driver
rescue Exception => e
puts e.message
Process.exit(0)
end
else # else create driver instance for desktop browser
begin
$driver = Selenium::WebDriver.for(:"#{$browser_type}")
$driver.manage().window().maximize()
rescue Exception => e
puts e.message
Process.exit(0)
end
end

47
features/support/hooks.rb Normal file
View File

@ -0,0 +1,47 @@
#Cucumber provides a number of hooks which allow us to run blocks at various points in the Cucumber test cycle
Before do
# Do something before each scenario.
end
Before do |scenario|
# The +scenario+ argument is optional, but if you use it, you can get the title,
# description, or name (title + description) of the scenario that is about to be
# executed.
end
After do |scenario|
# Do something after each scenario.
# The +scenario+ argument is optional, but
# if you use it, you can inspect status with
# the #failed?, #passed? and #exception methods.
if(scenario.failed?)
#Do something if scenario fails.
end
end
#Tagged hooks
Before('@Ex_tag1, @Ex_tag2') do
# This will only run before scenarios tagged
# with @Ex_tag1 OR @Ex_tag2.
end
AfterStep('@Ex_tag1, @Ex_tag2') do |scenario|
# This will only run after steps within scenarios tagged
# with @Ex_tag1 AND @Ex_tag2.
end
Around('@Ex_tag1') do |scenario, block|
# Will round around a scenario
end
AfterConfiguration do |config|
# Will run after cucumber has been configured
end
# Quit the selenium driver from the example tests.
at_exit do
end