ruby_raider 0.3.5 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 045a0c59f5595a6598342955964d1f666dd5a7366794c88e2250f0817fd47558
4
- data.tar.gz: 264214ab1455c81dab39b71a96a810d65169eaa8a385c254048a0f4926a7ac35
3
+ metadata.gz: aa0c6d643c3cde2157842b7627cd91377aab6e76d47f6f4136c14a6999eacedf
4
+ data.tar.gz: 94105992da2846eb8585d10d8b2c471418b6c8544ef2db948ea3a62c950006d8
5
5
  SHA512:
6
- metadata.gz: e3bac2468b6064901f66259f96d9b3296a7bc3ccd60636f134b25512522f030327b1999d3bcc0ad5a6802ec69abde7caab7f4fca94e720875eb9625bed9b43a1
7
- data.tar.gz: 73d5ef7d7aa9b04e0960457ab750f549302ea087e043e08c4f745364a12cbcb0cd21abfd2b8baf5bf8c040ef50c3e7b623ed8cfa20203e86d27ff9d5ea941e5b
6
+ metadata.gz: 9ab37f89743262fa6fddfa3a72791e118bfb46f01596177cc488f9900207835ddf4478dd16f53d017ca58d1e11a72f7e4431a64035f25c8958949e1d2934bef9
7
+ data.tar.gz: ea715071ad366384139705627bf4ad0b5bee9665d3ee3dc4853debc735acea6ebc1ae32860188cf235bb62da47463bb97ac3c17d2509a99f76067fe4500270c5
@@ -0,0 +1,23 @@
1
+ name: Reek Code Review
2
+
3
+ on: [pull_request]
4
+
5
+ jobs:
6
+ reek:
7
+ name: runner / reek
8
+ runs-on: ubuntu-latest
9
+ steps:
10
+ - name: Set up Ruby
11
+ uses: ruby/setup-ruby@f20f1eae726df008313d2e0d78c5e602562a1bcf
12
+ with:
13
+ ruby-version: head
14
+
15
+ - name: Check out code
16
+ uses: actions/checkout@v1
17
+
18
+ - name: reek
19
+ uses: reviewdog/action-reek@v1
20
+ with:
21
+ reek_version: gemfile
22
+ reporter: github-pr-review # Default is github-pr-check
23
+ fail_on_error: true
@@ -0,0 +1,27 @@
1
+ name: Rspec Tests
2
+
3
+ on:
4
+ push:
5
+ branches: [ "*" ]
6
+ pull_request:
7
+ branches: [ "*" ]
8
+
9
+ jobs:
10
+ build:
11
+ name: CI
12
+ runs-on: ubuntu-latest
13
+
14
+ steps:
15
+ - name: Set up Ruby
16
+ uses: ruby/setup-ruby@f20f1eae726df008313d2e0d78c5e602562a1bcf
17
+ with:
18
+ ruby-version: head
19
+
20
+ - name: Checkout repository
21
+ uses: actions/checkout@v3
22
+
23
+ - name: Install gems
24
+ run: bundle install
25
+
26
+ - name: Build and test with rspec
27
+ run: bundle exec rspec spec
@@ -0,0 +1,28 @@
1
+ name: Rubocop
2
+
3
+ on: [pull_request]
4
+
5
+ permissions:
6
+ contents: read
7
+ pull-requests: write
8
+
9
+ jobs:
10
+ rubocop:
11
+ name: runner / rubocop
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - name: Set up Ruby
15
+ uses: ruby/setup-ruby@f20f1eae726df008313d2e0d78c5e602562a1bcf
16
+ with:
17
+ ruby-version: head
18
+
19
+ - name: Check out code
20
+ uses: actions/checkout@v1
21
+
22
+ - name: rubocop
23
+ uses: reviewdog/action-rubocop@v2
24
+ with:
25
+ rubocop_version: gemfile
26
+ rubocop_extensions: rubocop-rspec:gemfile
27
+ reporter: github-pr-review # Default is github-pr-check
28
+ fail_on_error: true
data/.rubocop.yml CHANGED
@@ -1,6 +1,8 @@
1
+ require: rubocop-rspec
2
+
1
3
  AllCops:
2
4
  Exclude:
3
5
  - './spec/*'
4
6
 
5
7
  Style/Documentation:
6
- Enabled: false
8
+ Enabled: false
data/README.md CHANGED
@@ -1,7 +1,11 @@
1
1
  # Ruby Raider
2
2
 
3
- This is a gem to make setup and start of UI automation projects easier
4
- You can find more information and updates on releases in : https://ruby-raider.com/
3
+ [![Gem Version](https://badge.fury.io/rb/ruby_raider.svg)](https://badge.fury.io/rb/ruby_raider)
4
+ [![Rubocop](https://github.com/RubyRaider/ruby_raider/actions/workflows/rspec.yml/badge.svg)](https://github.com/RubyRaider/ruby_raider/actions/workflows/rspec.yml)
5
+
6
+ This is a gem to make setup and start of UI automation projects easier.
7
+
8
+ You can find more information and updates on releases in : [https://ruby-raider.com/](https://ruby-raider.com/)
5
9
 
6
10
  Just do:
7
11
 
@@ -11,11 +15,11 @@ then do:
11
15
 
12
16
  **raider new [name_of_project]**
13
17
 
14
- and you will have a new project in the folder you are in
18
+ and you will have a new project in the folder you are in.
15
19
 
16
20
  Currently we support:
17
21
 
18
- * Gerating a framework with Cucumber and Selenium
22
+ * Generating a framework with Cucumber and Selenium
19
23
 
20
24
  * Generating a framework with Rspec and Selenium
21
25
 
@@ -27,18 +31,20 @@ Currently we support:
27
31
 
28
32
  * Generating a framework with Cucumber and Appium for IOS
29
33
 
30
- In order to run the appium tests, download the example [app](https://github.com/cloudgrey-io/the-app/releases/tag/v1.10.0)
34
+ In order to run the Appium tests, download the example [app](https://github.com/cloudgrey-io/the-app/releases/tag/v1.10.0).
31
35
 
32
- This works in all the platforms (Tested on Mac OS, Linux and Windows)
36
+ This works in all the platforms (Tested on Mac OS, Linux and Windows).
33
37
 
34
38
  **Ruby raider provides the following list of commands**
35
39
  ```
36
40
  Commands:
37
41
  raider browser [BROWSER] # Sets the default browser for a project
38
42
 
43
+ raider browser_options [OPTIONS] # Sets the browser options for the project
44
+
39
45
  raider feature [FEATURE_NAME] # Creates a new feature
40
46
 
41
- raider help [COMMAND] # Describe available commands or one specific command
47
+ raider help [COMMAND] # Describes available commands or one specific command
42
48
 
43
49
  raider helper [HELPER_NAME] # Creates a new helper
44
50
 
@@ -48,9 +54,9 @@ Commands:
48
54
 
49
55
  raider path [PATH] # Sets the default path for scaffolding
50
56
 
51
- raider raid # It runs all the tests in a project
57
+ raider raid # Runs all the tests in a project
52
58
 
53
- raider scaffold [SCAFFOLD_NAME] # It generates everything needed to start automating
59
+ raider scaffold [SCAFFOLD_NAME] # Generates everything needed to start automating
54
60
 
55
61
  raider spec [SPEC_NAME] # Creates a new spec
56
62
 
@@ -68,4 +74,4 @@ raider path [PATH_NAME] --spec or -s
68
74
  raider path [PATH_NAME] --helper or -h
69
75
  ```
70
76
 
71
- If you don't specify an option path will assume you want to change the default path for pages
77
+ If you don't specify an option, path will assume you want to change the default path for pages.
data/Rakefile CHANGED
@@ -1,15 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'lib/ruby_raider'
4
+ require_relative 'lib/commands/scaffolding_commands'
4
5
 
5
- desc 'Create a new test projects'
6
- task :new, [:name] do |_t, args|
6
+ desc 'Creates a new test project'
7
+ task :new do
7
8
  RubyRaider.start
8
- RubyRaider.new(args.name)
9
9
  end
10
10
 
11
- desc 'Create a page'
12
- task :page, [:name] do |_t, args|
13
- RubyRaider.start
14
- RubyRaider.page(args.page)
11
+ desc 'Creates a page'
12
+ task :page, [:name, :path] do |_t, args|
13
+ ScaffoldingCommands.new.invoke(:page, nil, %W[:#{args.name} --path #{args.path}])
14
+ end
15
+
16
+ desc 'Sets a browser'
17
+ task :browser, [:type, :options] do |_t, args|
18
+ ScaffoldingCommands.new.invoke(:browser, nil, %W[:#{args.type} --opts #{args.options}])
15
19
  end
@@ -0,0 +1,116 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../generators/menu_generator'
4
+ require_relative '../scaffolding/scaffolding'
5
+ require_relative '../commands/utility_commands'
6
+
7
+ class ScaffoldingCommands < UtilityCommands
8
+ desc 'new [PROJECT_NAME]', 'Creates a new framework based on settings picked'
9
+
10
+ def new(project_name)
11
+ MenuGenerator.new(project_name).generate_choice_menu
12
+ end
13
+
14
+ map '-n' => 'new'
15
+
16
+ desc 'page [PAGE_NAME]', 'Creates a new page object'
17
+ option :path,
18
+ type: :string, required: false, desc: 'The path where your page will be created', aliases: '-p'
19
+ option :delete,
20
+ type: :boolean, required: false, desc: 'This will delete the selected page', aliases: '-d'
21
+
22
+ def page(name)
23
+ path = options[:path] || load_config_path('page')
24
+ if options[:delete]
25
+ Scaffolding.new([name, path]).delete_class
26
+ else
27
+ Scaffolding.new([name, path]).generate_class
28
+ end
29
+ end
30
+
31
+ map '-pg' => 'page'
32
+
33
+ desc 'feature [FEATURE_NAME]', 'Creates a new feature'
34
+ option :path,
35
+ type: :string, required: false, desc: 'The path where your feature will be created', aliases: '-p'
36
+ option :delete,
37
+ type: :boolean, required: false, desc: 'This will delete the selected feature', aliases: '-d'
38
+
39
+ def feature(name)
40
+ path = options[:path] || load_config_path('feature')
41
+ if options[:delete]
42
+ Scaffolding.new([name, path]).delete_feature
43
+ else
44
+ Scaffolding.new([name, path]).generate_feature
45
+ end
46
+ end
47
+
48
+ map '-f' => 'feature'
49
+
50
+ desc 'spec [SPEC_NAME]', 'Creates a new spec'
51
+ option :path,
52
+ type: :string, required: false, desc: 'The path where your spec will be created', aliases: '-p'
53
+ option :delete,
54
+ type: :boolean, required: false, desc: 'This will delete the selected spec', aliases: '-d'
55
+
56
+ def spec(name)
57
+ path = options[:path] || load_config_path('spec')
58
+ if options[:delete]
59
+ Scaffolding.new([name, path]).delete_spec
60
+ else
61
+ Scaffolding.new([name, path]).generate_spec
62
+ end
63
+ end
64
+
65
+ map '-s' => 'spec'
66
+
67
+ desc 'helper [HELPER_NAME]', 'Creates a new helper'
68
+ option :path,
69
+ type: :string, required: false, desc: 'The path where your helper will be created', aliases: '-p'
70
+ option :delete,
71
+ type: :boolean, required: false, desc: 'This will delete the selected helper', aliases: '-d'
72
+
73
+ def helper(name)
74
+ path = options[:path] || load_config_path('helper')
75
+ if options[:delete]
76
+ Scaffolding.new([name, path]).delete_helper
77
+ else
78
+ Scaffolding.new([name, path]).generate_helper
79
+ end
80
+ end
81
+
82
+ map '-h' => 'helper'
83
+
84
+ desc 'scaffold [SCAFFOLD_NAME]', 'It generates everything needed to start automating'
85
+
86
+ def scaffold(name)
87
+ if Pathname.new('spec').exist? && !Pathname.new('features').exist?
88
+ Scaffolding.new([name, load_config_path('spec')]).generate_spec
89
+ elsif Pathname.new('features').exist?
90
+ Scaffolding.new([name, load_config_path('feature')]).generate_feature
91
+ end
92
+ Scaffolding.new([name, load_config_path('page')]).generate_class
93
+ end
94
+
95
+ map '-sf' => 'scaffold'
96
+
97
+ desc 'config', 'Creates configuration file'
98
+ option :delete,
99
+ type: :boolean, required: false, desc: 'This will delete the config file', aliases: '-d'
100
+
101
+ def config
102
+ if options[:delete]
103
+ Scaffolding.new.delete_config
104
+ else
105
+ Scaffolding.new.generate_config
106
+ end
107
+ end
108
+
109
+ map '-c' => 'config'
110
+
111
+ no_commands do
112
+ def load_config_path(type)
113
+ YAML.load_file('config/config.yml')["#{type}_path"] if YAML.load_file('config/config.yml')
114
+ end
115
+ end
116
+ end
@@ -0,0 +1,67 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'thor'
4
+ require_relative '../utilities/utilities'
5
+
6
+ class UtilityCommands < Thor
7
+ desc 'path [PATH]', 'Sets the default path for scaffolding'
8
+ option :feature,
9
+ type: :boolean, required: false, desc: 'The default path for your features', aliases: '-f'
10
+ option :helper,
11
+ type: :boolean, required: false, desc: 'The default path for your helpers', aliases: '-h'
12
+ option :spec,
13
+ type: :boolean, required: false, desc: 'The default path for your specs', aliases: '-s'
14
+
15
+ def path(default_path)
16
+ type = options.empty? ? 'page' : options.keys.first
17
+ Utilities.new.send("#{type}_path=", default_path)
18
+ end
19
+
20
+ map '-p' => 'path'
21
+
22
+ desc 'url [URL]', 'Sets the default url for a project'
23
+
24
+ def url(default_url)
25
+ Utilities.new.url = default_url
26
+ end
27
+
28
+ map '-u' => 'url'
29
+
30
+ desc 'browser [BROWSER]', 'Sets the default browser for a project'
31
+ option :opts,
32
+ type: :array, required: false, desc: 'The options you want your browser to run with', aliases: '-o'
33
+ option :delete,
34
+ type: :boolean, required: false, desc: 'This will delete your browser options', aliases: '-d'
35
+
36
+ def browser(default_browser = nil)
37
+ Utilities.new.browser = default_browser if default_browser
38
+ browser_options(options[:opts]) if options[:opts] || options[:delete]
39
+ end
40
+
41
+ map '-b' => 'browser'
42
+
43
+ desc 'browser_options [OPTIONS]', 'Sets the browser options for the project'
44
+ option :delete,
45
+ type: :boolean, required: false, desc: 'This will delete your browser options', aliases: '-d'
46
+
47
+ def browser_options(*opts)
48
+ Utilities.new.browser_options = opts unless opts.empty?
49
+ Utilities.new.delete_browser_options if options[:delete]
50
+ end
51
+
52
+ map '-bo' => 'browser_options'
53
+
54
+ desc 'raid', 'It runs all the tests in a project'
55
+
56
+ def raid
57
+ Utilities.new.run
58
+ end
59
+
60
+ map '-r' => 'raid'
61
+
62
+ desc 'config', 'Creates a new config file'
63
+ option :path,
64
+ type: :string, required: false, desc: 'The path where your config file will be created', aliases: '-p'
65
+ option :delete,
66
+ type: :boolean, required: false, desc: 'This will delete the selected config file', aliases: '-d'
67
+ end
@@ -8,64 +8,79 @@ require_relative 'helper_generator'
8
8
  require_relative 'rspec_generator'
9
9
 
10
10
  class MenuGenerator
11
- class << self
12
- def generate_choice_menu(project_name)
13
- @cli = HighLine.new
14
- @cli.choose do |menu|
15
- menu.prompt = 'Please select your automation framework'
16
- menu.choice('Selenium') { choose_test_framework('selenium', project_name) }
17
- menu.choice('Watir') { choose_test_framework('watir', project_name) }
18
- menu.choice('Appium') { choose_test_framework('appium', project_name) }
19
- menu.choice('Quit') { exit }
20
- end
11
+ attr_reader :cli, :name, :generators
12
+
13
+ def initialize(project_name)
14
+ @cli = HighLine.new
15
+ @name = project_name
16
+ @generators = %w[Automation Common Helpers]
17
+ end
18
+
19
+ def generate_choice_menu
20
+ @cli.choose do |menu|
21
+ menu.prompt = 'Please select your automation framework'
22
+ menu.choice('Selenium') { choose_test_framework('selenium') }
23
+ menu.choice('Watir') { choose_test_framework('watir') }
24
+ menu.choice('Appium') { choose_test_framework('appium') }
25
+ menu.choice('Quit') { exit }
21
26
  end
27
+ end
28
+
29
+ def choose_test_framework(automation)
30
+ system('clear') || system('cls')
31
+ sleep 0.3
32
+ automation = automation == 'appium' ? choose_mobile_platform : automation
33
+ select_test_framework(automation)
34
+ end
35
+
36
+ def set_framework(automation, framework)
37
+ add_generator framework.capitalize
38
+ generators.each { |generator| invoke_generator(automation, framework, generator) }
39
+ system "cd #{name} && gem install bundler && bundle install"
40
+ end
22
41
 
23
- def choose_test_framework(automation, project_name)
24
- system('clear') || system('cls')
25
- sleep 0.3
26
- automation = automation == 'appium' ? choose_mobile_platform : automation
27
- framework = ''
28
- @cli.choose do |menu|
29
- menu.prompt = 'Please select your test framework'
30
- menu.choice('Rspec') do
31
- framework = 'rspec'
32
- set_framework(automation, framework, project_name)
33
- end
34
- menu.choice('Cucumber') do
35
- framework = 'cucumber'
36
- set_framework(automation, framework, project_name)
37
- end
38
- menu.choice('Quit') { exit }
39
- end
40
- @cli.say("You have chosen to use #{framework} with #{automation}")
42
+ def choose_mobile_platform
43
+ @cli.choose do |menu|
44
+ menu.prompt = 'Please select your mobile platform'
45
+ menu.choice('iOS') { 'appium_ios' }
46
+ error_handling(menu, 'Android')
47
+ error_handling(menu, 'Cross Platform')
48
+ menu.choice('Quit') { exit }
41
49
  end
50
+ end
51
+
52
+ protected
42
53
 
43
- def set_framework(automation, framework, project_name)
44
- if framework == 'rspec'
45
- RspecGenerator.new([automation, framework, project_name]).invoke_all
46
- else
47
- CucumberGenerator.new([automation, framework, project_name]).invoke_all
48
- end
49
- AutomationGenerator.new([automation, framework, project_name]).invoke_all
50
- CommonGenerator.new([automation, framework, project_name]).invoke_all
51
- HelpersGenerator.new([automation, framework, project_name]).invoke_all
52
- system "cd #{project_name} && gem install bundler && bundle install"
54
+ def add_generator(*opts)
55
+ opts.each { |opt| @generators.push opt }
56
+ end
57
+
58
+ private
59
+
60
+ def framework_choice(invoker, framework, automation_type)
61
+ invoker.choice(framework) do
62
+ set_framework(automation_type, framework.downcase)
63
+ @cli.say("You have chosen to use #{framework} with #{automation_type}")
53
64
  end
65
+ end
54
66
 
55
- def choose_mobile_platform
56
- @cli.choose do |menu|
57
- menu.prompt = 'Please select your mobile platform'
58
- menu.choice('iOS') { 'appium_ios' }
59
- menu.choice('Android') do
60
- pp 'Android appium is coming soon. Thank you for the interest'
61
- exit
62
- end
63
- menu.choice('Cross Platform') do
64
- pp 'Cross platform appium is coming soon. Thank you for the interest'
65
- exit
66
- end
67
- menu.choice('Quit') { exit }
68
- end
67
+ def error_handling(invoker, platform)
68
+ invoker.choice(platform) do
69
+ pp "#{platform} appium is coming soon. Thank you for the interest"
70
+ exit
69
71
  end
70
72
  end
73
+
74
+ def select_test_framework(automation)
75
+ @cli.choose do |menu|
76
+ menu.prompt = 'Please select your test framework'
77
+ framework_choice(menu, 'Rspec', automation)
78
+ framework_choice(menu, 'Cucumber', automation)
79
+ menu.choice('Quit') { exit }
80
+ end
81
+ end
82
+
83
+ def invoke_generator(automation, framework, generator)
84
+ Object.const_get("#{generator}Generator").new([automation, framework, name]).invoke_all
85
+ end
71
86
  end
@@ -7,7 +7,7 @@ Before do
7
7
  end
8
8
 
9
9
  After do |scenario|
10
- browser.save_screenshot("allure-results/screenshots/#{scenario.name}.png")
10
+ browser.screenshot.save("allure-results/screenshots/#{scenario.name}.png")
11
11
  Raider::AllureHelper.add_screenshot(scenario.name)
12
12
  browser.quit
13
13
  end
@@ -16,7 +16,7 @@ module Raider
16
16
  def add_screenshot(screenshot_name)
17
17
  Allure.add_attachment(
18
18
  name: name,
19
- source: "File.open(allure-results/screenshots/#{screenshot_name}.png)",
19
+ source: File.open("allure-results/screenshots/#{screenshot_name}.png"),
20
20
  type: Allure::ContentType::PNG,
21
21
  test_case: true
22
22
  )
@@ -9,11 +9,11 @@ module Raider
9
9
  module BrowserHelper
10
10
  attr_reader :browser
11
11
 
12
- def new_browser(opts = {})
12
+ def new_browser(*args)
13
13
  @config = YAML.load_file('config/config.yml')
14
14
  browser = @config['browser'].to_sym
15
- opts = opts.nil? ? @config['browser_options'] : opts
16
- @browser = Watir::Browser.new(browser, options: opts)
15
+ args = args.empty? ? @config['browser_options'] : args
16
+ @browser = Watir::Browser.new(browser, options: { args: args })
17
17
  end
18
18
  end
19
19
  end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  require 'yaml'
3
3
  <% if automation == 'selenium' -%>
4
+ require 'active_support/inflector'
4
5
  require 'webdrivers'
5
6
  <% else -%>
6
7
  require 'appium_lib'
@@ -11,6 +12,6 @@ module Raider
11
12
  module DriverHelper
12
13
  attr_reader :driver
13
14
 
14
- <%= ERB.new(File.read(File.expand_path('./partials/new_driver.tt', __dir__))).result(binding).strip! %>
15
+ <%= ERB.new(File.read(File.expand_path('./partials/driver_and_options.tt', __dir__))).result(binding).strip! %>
15
16
  end
16
17
  end
@@ -0,0 +1,25 @@
1
+ <% if automation == 'selenium' %>
2
+ def new_driver(*opts)
3
+ @config = YAML.load_file('config/config.yml')
4
+ browser = @config['browser'].to_sym
5
+ @driver = Selenium::WebDriver.for(browser, capabilities: browser_options(*opts))
6
+ end
7
+
8
+ def browser_options(*opts)
9
+ opts = opts.empty? ? @config['browser_options'] : opts
10
+ create_options(*opts)
11
+ end
12
+
13
+ def create_options(*opts)
14
+ browser = @config['browser'] == :ie ? @config['browser'].to_s.upcase : @config['browser'].to_s.capitalize
15
+ caps = "Selenium::WebDriver::#{browser}::Options".constantize.new
16
+ opts.each {|option| caps.add_argument(option) }
17
+ caps
18
+ end
19
+ <% else %>
20
+ def new_driver
21
+ appium_file = File.join(Dir.pwd, 'appium.txt')
22
+ caps = Appium.load_appium_txt(file: appium_file)
23
+ @driver = Appium::Driver.new(caps)
24
+ end
25
+ <% end %>
@@ -1,8 +1,8 @@
1
1
  <% case automation
2
2
  when 'selenium' %>
3
- driver.save_screenshot("allure-results/screenshots/#{example_name}.png") if status == :failed
3
+ driver.save_screenshot("allure-results/screenshots/#{example_name}.png")
4
4
  <% when 'watir' %>
5
- browser.save_screenshot("allure-results/screenshots/#{example_name}.png") if status == :failed
5
+ browser.screenshot.save("allure-results/screenshots/#{example_name}.png")
6
6
  <% else %>
7
- driver.screenshot("allure-results/screenshots/#{example_name}.png") if status == :failed
7
+ driver.screenshot("allure-results/screenshots/#{example_name}.png")
8
8
  <% end %>
@@ -21,9 +21,8 @@ module Raider
21
21
 
22
22
  config.after(:each) do
23
23
  example_name = self.class.descendant_filtered_examples.first.description
24
- status = self.class.descendant_filtered_examples.first.execution_result.status
25
24
  <%= ERB.new(File.read(File.expand_path('./partials/screenshot.tt', __dir__))).result(binding).strip! %>
26
- AllureHelper.add_screenshot example_name if status == :failed
25
+ AllureHelper.add_screenshot example_name
27
26
  <%= ERB.new(File.read(File.expand_path('./partials/quit_driver.tt', __dir__))).result(binding).strip! %>
28
27
  end
29
28
  end
data/lib/ruby_raider.rb CHANGED
@@ -1,152 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'thor'
4
- require 'yaml'
5
- require_relative 'generators/menu_generator'
6
- require_relative '../lib/scaffolding/scaffolding'
7
- require_relative '../lib/utilities/utilities'
3
+ require_relative '../lib/commands/scaffolding_commands'
8
4
 
9
- class RubyRaider < Thor
10
- desc 'new [PROJECT_NAME]', 'Creates a new framework based on settings picked'
11
-
12
- def new(project_name)
13
- MenuGenerator.generate_choice_menu(project_name)
14
- end
15
- map '-n' => "new"
16
-
17
- desc 'page [PAGE_NAME]', 'Creates a new page object'
18
- option :path,
19
- type: :string, required: false, desc: 'The path where your page will be created', aliases: '-p'
20
- option :delete,
21
- type: :boolean, required: false, desc: 'This will delete the selected page', aliases: '-d'
22
-
23
- def page(name)
24
- path = options[:path].nil? ? load_config_path('page') : options[:path]
25
- if options[:delete]
26
- Scaffolding.new([name, path]).delete_class
27
- else
28
- Scaffolding.new([name, path]).generate_class
29
- end
30
- end
31
- map '-pg' => "page"
32
-
33
- desc 'feature [FEATURE_NAME]', 'Creates a new feature'
34
- option :path,
35
- type: :string, required: false, desc: 'The path where your feature will be created', aliases: '-p'
36
- option :delete,
37
- type: :boolean, required: false, desc: 'This will delete the selected feature', aliases: '-d'
38
-
39
- def feature(name)
40
- path = options[:path].nil? ? load_config_path('feature') : options[:path]
41
- if options[:delete]
42
- Scaffolding.new([name, path]).delete_feature
43
- else
44
- Scaffolding.new([name, path]).generate_feature
45
- end
46
- end
47
- map '-f' => "feature"
48
-
49
- desc 'spec [SPEC_NAME]', 'Creates a new spec'
50
- option :path,
51
- type: :string, required: false, desc: 'The path where your spec will be created', aliases: '-p'
52
- option :delete,
53
- type: :boolean, required: false, desc: 'This will delete the selected spec', aliases: '-d'
54
-
55
- def spec(name)
56
- path = options[:path].nil? ? load_config_path('spec') : options[:path]
57
- if options[:delete]
58
- Scaffolding.new([name, path]).delete_spec
59
- else
60
- Scaffolding.new([name, path]).generate_spec
61
- end
62
- end
63
- map '-s' => "spec"
64
-
65
- desc 'helper [HELPER_NAME]', 'Creates a new helper'
66
- option :path,
67
- type: :string, required: false, desc: 'The path where your helper will be created', aliases: '-p'
68
- option :delete,
69
- type: :boolean, required: false, desc: 'This will delete the selected helper', aliases: '-d'
70
-
71
- def helper(name)
72
- path = options[:path].nil? ? load_config_path('helper') : options[:path]
73
- if options[:delete]
74
- Scaffolding.new([name, path]).delete_helper
75
- else
76
- Scaffolding.new([name, path]).generate_helper
77
- end
78
- end
79
- map '-h' => "helper"
80
-
81
- desc 'path [PATH]', 'Sets the default path for scaffolding'
82
- option :feature,
83
- type: :boolean, required: false, desc: 'The default path for your features', aliases: '-f'
84
- option :helper,
85
- type: :boolean, required: false, desc: 'The default path for your helpers', aliases: '-h'
86
- option :spec,
87
- type: :boolean, required: false, desc: 'The default path for your specs', aliases: '-s'
88
- def path(default_path)
89
- type = options.empty? ? 'page' : options.keys.first
90
- Utilities.new.send("#{type}_path=", default_path)
91
- end
92
- map '-p' => "path"
93
-
94
- desc 'url [URL]', 'Sets the default url for a project'
95
-
96
- def url(default_url)
97
- Utilities.new.url = default_url
98
- end
99
- map '-u' => "url"
100
-
101
- desc 'browser [BROWSER]', 'Sets the default browser for a project'
102
- option :opts,
103
- type: :hash, required: false, desc: 'The options you want your browser to run with', aliases: '-o'
104
- option :delete,
105
- type: :boolean, required: false, desc: 'This will delete your browser options', aliases: '-d'
106
- def browser(default_browser = nil)
107
- Utilities.new.browser = default_browser unless default_browser.nil?
108
- Utilities.new.browser_options = options[:opts] unless options[:opts].nil?
109
- Utilities.new.delete_browser_options if options[:delete]
110
- end
111
- map '-b' => "browser"
112
-
113
- desc 'raid', 'It runs all the tests in a project'
114
- def raid
115
- Utilities.new.run
116
- end
117
- map '-r' => "raid"
118
-
119
- desc 'scaffold [SCAFFOLD_NAME]', 'It generates everything needed to start automating'
120
- def scaffold(name)
121
- if Pathname.new('spec').exist? && !Pathname.new('features').exist?
122
- Scaffolding.new([name, load_config_path('spec')]).generate_spec
123
- Scaffolding.new([name, load_config_path('page')]).generate_class
124
- elsif Pathname.new('features').exist?
125
- Scaffolding.new([name, load_config_path('feature')]).generate_feature
126
- Scaffolding.new([name, load_config_path('page')]).generate_class
127
- else
128
- raise 'No features or spec folders where found. We are not sure which type of project you are running'
129
- end
130
- end
131
- map '-sf' => "scaffold"
132
-
133
- desc 'config', 'Creates a new config file'
134
- option :path,
135
- type: :string, required: false, desc: 'The path where your config file will be created', aliases: '-p'
136
- option :delete,
137
- type: :boolean, required: false, desc: 'This will delete the selected config file', aliases: '-d'
138
- def config
139
- if options[:delete]
140
- Scaffolding.new.delete_config
141
- else
142
- Scaffolding.new.generate_config
143
- end
144
- end
145
- map '-c' => "config"
146
-
147
- no_commands do
148
- def load_config_path(type)
149
- YAML.load_file('config/config.yml')["#{type}_path"] unless YAML.load_file('config/config.yml').nil?
150
- end
5
+ class RubyRaider
6
+ def self.start
7
+ ScaffoldingCommands.start
151
8
  end
152
9
  end
@@ -30,7 +30,7 @@ class Scaffolding < Thor::Group
30
30
 
31
31
  def generate_config
32
32
  template('../../generators/templates/common/config.tt',
33
- default_path("config/config.yml", '.yml'))
33
+ default_path('config/config.yml', '.yml'))
34
34
  end
35
35
 
36
36
  def delete_class
@@ -50,10 +50,10 @@ class Scaffolding < Thor::Group
50
50
  end
51
51
 
52
52
  def delete_config
53
- remove_file(default_path("config/config.yml", '.yml'))
53
+ remove_file(default_path('config/config.yml', '.yml'))
54
54
  end
55
55
 
56
56
  def default_path(standard_path, file_type)
57
- path.nil? ? standard_path : "#{path}/#{name}#{file_type}"
57
+ path ? "#{path}/#{name}#{file_type}" : standard_path
58
58
  end
59
59
  end
@@ -38,8 +38,8 @@ class Utilities
38
38
  overwrite_yaml
39
39
  end
40
40
 
41
- def browser_options=(opts)
42
- @config['browser_options'] = opts
41
+ def browser_options=(*opts)
42
+ @config['browser_options'] = opts.flatten
43
43
  overwrite_yaml
44
44
  end
45
45
 
data/ruby_raider.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'ruby_raider'
5
- s.version = '0.3.5'
5
+ s.version = '0.3.6'
6
6
  s.summary = 'A gem to make setup and start of UI automation projects easier'
7
7
  s.description = 'This gem has everything you need to start working with test automation'
8
8
  s.authors = ['Agustin Pequeno']
@@ -1,60 +1,88 @@
1
1
  require 'pathname'
2
2
  require 'yaml'
3
- require_relative 'spec_helper'
4
- require_relative '../lib/ruby_raider'
5
3
  require_relative '../lib/generators/common_generator'
4
+ require_relative '../lib/commands/scaffolding_commands'
5
+ require_relative 'spec_helper'
6
+
7
+ describe ScaffoldingCommands do
8
+ let(:scaffold) { ScaffoldingCommands }
9
+ let(:name) { 'test' }
10
+
11
+ context 'with a spec folder' do
12
+ before(:all) do
13
+ ScaffoldingCommands.new.invoke(:config)
14
+ end
15
+
16
+ it 'scaffolds for rspec' do
17
+ scaffold.new.invoke(:scaffold, nil, %W[#{name}])
18
+ expect(Pathname.new("page_objects/pages/#{name}_page.rb")).to be_file
19
+ expect(Pathname.new("spec/#{name}_spec.rb")).to be_file
20
+ end
21
+ end
22
+
23
+ context 'with a features folder' do
24
+ it 'scaffolds for cucumber' do
25
+ FileUtils.mkdir 'features'
26
+ scaffold.new.invoke(:scaffold, nil, %W[#{name}])
27
+ expect(Pathname.new("page_objects/pages/#{name}_page.rb")).to be_file
28
+ expect(Pathname.new("features/#{name}.feature")).to be_file
29
+ end
30
+ end
6
31
 
7
- describe RubyRaider do
8
- let(:raider) { RubyRaider }
9
- let(:name) {'test'}
32
+ after(:all) do
33
+ folders = %w[test config page_objects features]
34
+ folders.each do |folder|
35
+ FileUtils.rm_rf(folder)
36
+ end
37
+ FileUtils.rm('spec/test_spec.rb') if Pathname.new('spec/test_spec.rb').exist?
38
+ end
10
39
 
11
40
  context 'with path from config file' do
12
41
  before(:all) do
13
- CommonGenerator.new(%w[rspec cucumber test]).invoke(:generate_config_file)
14
- FileUtils.cp_lr('test/config', './')
42
+ ScaffoldingCommands.new.invoke(:config)
15
43
  end
16
44
 
17
45
  it 'creates a page' do
18
- raider.new.invoke(:page, nil, %W[#{name}])
46
+ scaffold.new.invoke(:page, nil, %W[#{name}])
19
47
  expect(Pathname.new("page_objects/pages/#{name}_page.rb")).to be_file
20
48
  end
21
49
 
22
50
  it 'creates a feature' do
23
- raider.new.invoke(:feature, nil, %W[#{name}])
51
+ scaffold.new.invoke(:feature, nil, %W[#{name}])
24
52
  expect(Pathname.new("features/#{name}.feature")).to be_file
25
53
  end
26
54
 
27
55
  it 'creates a spec' do
28
- raider.new.invoke(:spec, nil, %W[#{name}])
56
+ scaffold.new.invoke(:spec, nil, %W[#{name}])
29
57
  expect(Pathname.new("spec/#{name}_spec.rb")).to be_file
30
58
  end
31
59
 
32
60
  it 'creates a helper' do
33
- raider.new.invoke(:helper, nil, %W[#{name}])
61
+ scaffold.new.invoke(:helper, nil, %W[#{name}])
34
62
  expect(Pathname.new("helpers/#{name}_helper.rb")).to be_file
35
63
  end
36
64
 
37
65
  it 'deletes a page' do
38
- raider.new.invoke(:page, nil, %W[#{name}])
39
- raider.new.invoke(:page, nil, %W[#{name} --delete])
66
+ scaffold.new.invoke(:page, nil, %W[#{name}])
67
+ scaffold.new.invoke(:page, nil, %W[#{name} --delete])
40
68
  expect(Pathname.new("page_objects/pages/#{name}_page.rb")).to_not be_file
41
69
  end
42
70
 
43
71
  it 'deletes a feature' do
44
- raider.new.invoke(:feature, nil, %W[#{name}])
45
- raider.new.invoke(:feature, nil, %W[#{name} --delete])
72
+ scaffold.new.invoke(:feature, nil, %W[#{name}])
73
+ scaffold.new.invoke(:feature, nil, %W[#{name} --delete])
46
74
  expect(Pathname.new("features/#{name}.feature")).to_not be_file
47
75
  end
48
76
 
49
77
  it 'deletes a spec' do
50
- raider.new.invoke(:spec, nil, %W[#{name}])
51
- raider.new.invoke(:spec, nil, %W[#{name} --delete])
78
+ scaffold.new.invoke(:spec, nil, %W[#{name}])
79
+ scaffold.new.invoke(:spec, nil, %W[#{name} --delete])
52
80
  expect(Pathname.new("spec/#{name}_spec.rb")).to_not be_file
53
81
  end
54
82
 
55
83
  it 'deletes a helper' do
56
- raider.new.invoke(:helper, nil, %W[#{name}])
57
- raider.new.invoke(:helper, nil, %W[#{name} --delete])
84
+ scaffold.new.invoke(:helper, nil, %W[#{name}])
85
+ scaffold.new.invoke(:helper, nil, %W[#{name} --delete])
58
86
  expect(Pathname.new("helpers/#{name}_helper.rb")).to_not be_file
59
87
  end
60
88
 
@@ -71,22 +99,22 @@ describe RubyRaider do
71
99
  let(:path) { 'test_folder' }
72
100
 
73
101
  it 'creates a page' do
74
- raider.new.invoke(:page, nil, %W[#{name} --path #{path}])
102
+ scaffold.new.invoke(:page, nil, %W[#{name} --path #{path}])
75
103
  expect(Pathname.new("#{path}/#{name}_page.rb")).to be_file
76
104
  end
77
105
 
78
106
  it 'creates a feature' do
79
- raider.new.invoke(:feature, nil, %W[#{name} --path #{path}])
107
+ scaffold.new.invoke(:feature, nil, %W[#{name} --path #{path}])
80
108
  expect(Pathname.new("#{path}/#{name}.feature")).to be_file
81
109
  end
82
110
 
83
111
  it 'creates a spec' do
84
- raider.new.invoke(:spec, nil, %W[#{name} --path #{path}])
112
+ scaffold.new.invoke(:spec, nil, %W[#{name} --path #{path}])
85
113
  expect(Pathname.new("#{path}/#{name}_spec.rb")).to be_file
86
114
  end
87
115
 
88
116
  it 'creates a helper' do
89
- raider.new.invoke(:helper, nil, %W[#{name} --path #{path}])
117
+ scaffold.new.invoke(:helper, nil, %W[#{name} --path #{path}])
90
118
  expect(Pathname.new("#{path}/#{name}_helper.rb")).to be_file
91
119
  end
92
120
 
@@ -99,49 +127,48 @@ describe RubyRaider do
99
127
  let(:path) { 'test_folder' }
100
128
 
101
129
  before(:all) do
102
- CommonGenerator.new(%w[rspec cucumber test]).invoke(:generate_config_file)
103
- FileUtils.cp_lr('test/config', './')
130
+ ScaffoldingCommands.new.invoke(:config)
104
131
  end
105
132
 
106
133
  it 'changes the path for pages' do
107
- raider.new.invoke(:path, nil, %W[#{path}])
134
+ scaffold.new.invoke(:path, nil, %W[#{path}])
108
135
  config = YAML.load_file('config/config.yml')
109
136
  expect(config['page_path']).to eql path
110
137
  end
111
138
 
112
139
  it 'changes the path for features' do
113
- raider.new.invoke(:path, nil, %W[#{path} -f])
140
+ scaffold.new.invoke(:path, nil, %W[#{path} -f])
114
141
  config = YAML.load_file('config/config.yml')
115
142
  expect(config['feature_path']).to eql path
116
143
  end
117
144
 
118
145
  it 'changes the path for specs' do
119
- raider.new.invoke(:path, nil, %W[#{path} -s])
146
+ scaffold.new.invoke(:path, nil, %W[#{path} -s])
120
147
  config = YAML.load_file('config/config.yml')
121
148
  expect(config['spec_path']).to eql path
122
149
  end
123
150
 
124
151
  it 'creates page' do
125
- raider.new.invoke(:path, nil, %W[#{path}])
126
- raider.new.invoke(:page, nil, %W[#{name}])
152
+ scaffold.new.invoke(:path, nil, %W[#{path}])
153
+ scaffold.new.invoke(:page, nil, %W[#{name}])
127
154
  expect(Pathname.new("#{path}/#{name}_page.rb")).to be_file
128
155
  end
129
156
 
130
157
  it 'creates feature' do
131
- raider.new.invoke(:path, nil, %W[#{path} -f])
132
- raider.new.invoke(:feature, nil, %W[#{name}])
158
+ scaffold.new.invoke(:path, nil, %W[#{path} -f])
159
+ scaffold.new.invoke(:feature, nil, %W[#{name}])
133
160
  expect(Pathname.new("#{path}/#{name}.feature")).to be_file
134
161
  end
135
162
 
136
163
  it 'creates spec' do
137
- raider.new.invoke(:path, nil, %W[#{path} -s])
138
- raider.new.invoke(:spec, nil, %W[#{name}])
164
+ scaffold.new.invoke(:path, nil, %W[#{path} -s])
165
+ scaffold.new.invoke(:spec, nil, %W[#{name}])
139
166
  expect(Pathname.new("#{path}/#{name}_spec.rb")).to be_file
140
167
  end
141
168
 
142
169
  it 'creates spec' do
143
- raider.new.invoke(:path, nil, %W[#{path} -h])
144
- raider.new.invoke(:helper, nil, %W[#{name}])
170
+ scaffold.new.invoke(:path, nil, %W[#{path} -h])
171
+ scaffold.new.invoke(:helper, nil, %W[#{name}])
145
172
  expect(Pathname.new("#{path}/#{name}_helper.rb")).to be_file
146
173
  end
147
174
 
@@ -160,39 +187,39 @@ describe RubyRaider do
160
187
  end
161
188
 
162
189
  it 'updates the url' do
163
- raider.new.invoke(:url, nil, %W[test.com])
190
+ scaffold.new.invoke(:url, nil, %W[test.com])
164
191
  config = YAML.load_file('config/config.yml')
165
192
  expect(config['url']).to eql 'test.com'
166
193
  end
167
194
 
168
195
  it 'updates the browser' do
169
- raider.new.invoke(:browser, nil, %W[:firefox])
196
+ scaffold.new.invoke(:browser, nil, %W[:firefox])
170
197
  config = YAML.load_file('config/config.yml')
171
198
  expect(config['browser']).to eql ':firefox'
172
199
  end
173
200
 
174
201
  it 'updates the browser and the browser options' do
175
- raider.new.invoke(:browser, nil, %W[:firefox --opts headless:test])
202
+ scaffold.new.invoke(:browser, nil, %W[:firefox --opts headless start-maximized start-fullscreen])
176
203
  config = YAML.load_file('config/config.yml')
177
204
  expect(config['browser']).to eql ':firefox'
178
- expect(config['browser_options']).to eql "headless" => "test"
205
+ expect(config['browser_options']).to eql %W[headless start-maximized start-fullscreen]
179
206
  end
180
207
 
181
208
  it 'updates only the browser options' do
182
- raider.new.invoke(:browser, nil, %W[:firefox --opts headless:test])
209
+ scaffold.new.invoke(:browser, nil, %W[:firefox --opts headless])
183
210
  config = YAML.load_file('config/config.yml')
184
- expect(config['browser_options']).to eql "headless" => "test"
211
+ expect(config['browser_options']).to eql %w[headless]
185
212
  end
186
213
 
187
214
  it 'deletes the browser options when passed with the delete parameter' do
188
- raider.new.invoke(:browser, nil, %W[:firefox --opts headless:test --delete])
215
+ scaffold.new.invoke(:browser, nil, %W[:firefox --opts headless --delete])
189
216
  config = YAML.load_file('config/config.yml')
190
217
  expect(config['browser_options']).to be_nil
191
218
  end
192
219
 
193
220
  it 'deletes the browser options' do
194
- raider.new.invoke(:browser, nil, %W[:firefox --opts headless:test])
195
- raider.new.invoke(:browser, nil, %W[--delete])
221
+ scaffold.new.invoke(:browser, nil, %W[:firefox --opts headless])
222
+ scaffold.new.invoke(:browser, nil, %W[--delete])
196
223
  config = YAML.load_file('config/config.yml')
197
224
  expect(config['browser_options']).to be_nil
198
225
  end
@@ -204,36 +231,4 @@ describe RubyRaider do
204
231
  end
205
232
  end
206
233
  end
207
-
208
- context 'scaffolding' do
209
- before(:all) do
210
- CommonGenerator.new(%w[rspec selenium test]).invoke(:generate_config_file)
211
- FileUtils.cp_lr('test/config', './')
212
- end
213
-
214
- context 'with a spec folder' do
215
- it 'scaffolds for rspec' do
216
- raider.new.invoke(:scaffold, nil, %W[#{name}])
217
- expect(Pathname.new("page_objects/pages/#{name}_page.rb")).to be_file
218
- expect(Pathname.new("spec/#{name}_spec.rb")).to be_file
219
- end
220
- end
221
-
222
- context 'with a features folder' do
223
- it 'scaffolds for cucumber' do
224
- FileUtils.mkdir 'features'
225
- raider.new.invoke(:scaffold, nil, %W[#{name}])
226
- expect(Pathname.new("page_objects/pages/#{name}_page.rb")).to be_file
227
- expect(Pathname.new("features/#{name}.feature")).to be_file
228
- end
229
- end
230
-
231
- after(:all) do
232
- folders = %w[test config page_objects features]
233
- folders.each do |folder|
234
- FileUtils.rm_rf(folder)
235
- end
236
- FileUtils.rm('spec/test_spec.rb') if Pathname.new('spec/test_spec.rb').exist?
237
- end
238
- end
239
- end
234
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_raider
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Agustin Pequeno
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-17 00:00:00.000000000 Z
11
+ date: 2022-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -117,6 +117,9 @@ extra_rdoc_files: []
117
117
  files:
118
118
  - ".github/ISSUE_TEMPLATE/bug_report.md"
119
119
  - ".github/ISSUE_TEMPLATE/feature_request.md"
120
+ - ".github/workflows/reek.yml"
121
+ - ".github/workflows/rspec.yml"
122
+ - ".github/workflows/rubocop.yml"
120
123
  - ".gitignore"
121
124
  - ".reek.yml"
122
125
  - ".rubocop.yml"
@@ -127,6 +130,8 @@ files:
127
130
  - README.md
128
131
  - Rakefile
129
132
  - bin/raider
133
+ - lib/commands/scaffolding_commands.rb
134
+ - lib/commands/utility_commands.rb
130
135
  - lib/generators/automation_generator.rb
131
136
  - lib/generators/common_generator.rb
132
137
  - lib/generators/cucumber_generator.rb
@@ -167,7 +172,7 @@ files:
167
172
  - lib/generators/templates/helpers/driver_helper.tt
168
173
  - lib/generators/templates/helpers/partials/allure_imports.tt
169
174
  - lib/generators/templates/helpers/partials/allure_requirements.tt
170
- - lib/generators/templates/helpers/partials/new_driver.tt
175
+ - lib/generators/templates/helpers/partials/driver_and_options.tt
171
176
  - lib/generators/templates/helpers/partials/quit_driver.tt
172
177
  - lib/generators/templates/helpers/partials/require_automation.tt
173
178
  - lib/generators/templates/helpers/partials/screenshot.tt
@@ -190,7 +195,7 @@ files:
190
195
  - spec/cucumber_generator_spec.rb
191
196
  - spec/helpers_generator_spec.rb
192
197
  - spec/rspec_generator_spec.rb
193
- - spec/ruby_raider_spec.rb
198
+ - spec/scaffolding_spec.rb
194
199
  - spec/spec_helper.rb
195
200
  homepage: https://github.com/RubyRaider/ruby_raider
196
201
  licenses:
@@ -1,14 +0,0 @@
1
- <% if automation == 'selenium' %>
2
- def new_driver(caps = {})
3
- @config = YAML.load_file('config/config.yml')
4
- browser = @config['browser'].to_sym
5
- caps = caps.nil? ? @config['browser_options'] : caps
6
- @driver = Selenium::WebDriver.for(browser, desired_capabilities: caps)
7
- end
8
- <% else %>
9
- def new_driver
10
- appium_file = File.join(Dir.pwd, 'appium.txt')
11
- caps = Appium.load_appium_txt(file: appium_file)
12
- @driver = Appium::Driver.new(caps)
13
- end
14
- <% end %>