ruby_raider 0.3.3 → 0.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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'
@@ -9,10 +10,8 @@ require_relative 'driver_helper'
9
10
 
10
11
  module Raider
11
12
  module DriverHelper
12
- class << self
13
13
  attr_reader :driver
14
14
 
15
- <%= ERB.new(File.read(File.expand_path('./partials/new_driver.tt', __dir__))).result(binding).strip! %>
16
- end
15
+ <%= ERB.new(File.read(File.expand_path('./partials/driver_and_options.tt', __dir__))).result(binding).strip! %>
17
16
  end
18
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
- DriverHelper.driver.quit
3
+ driver.quit
4
4
  <% when 'watir' %>
5
- BrowserHelper.browser.quit
5
+ browser.quit
6
6
  <% else %>
7
- DriverHelper.driver.quit_driver
7
+ driver.quit_driver
8
8
  <% 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 %>
@@ -1,8 +1,8 @@
1
1
  <% if automation == 'watir' %>
2
- @browser = BrowserHelper.new_browser
2
+ new_browser
3
3
  <% else %>
4
- @driver = DriverHelper.new_driver
4
+ new_driver
5
5
  <% end %>
6
6
  <% if %w[appium_ios].include? automation %>
7
- @driver.start_driver
7
+ start_driver
8
8
  <% end %>
@@ -14,15 +14,15 @@ module Raider
14
14
  AllureHelper.configure
15
15
  RSpec.configure do |config|
16
16
  config.formatter = AllureHelper.formatter
17
+ <% if automation == 'watir' %>config.include(BrowserHelper)<% else %>config.include(DriverHelper)<% end %>
17
18
  config.before(:each) do
18
19
  <%= ERB.new(File.read(File.expand_path('./partials/select_driver.tt', __dir__))).result(binding).strip! %>
19
20
  end
20
21
 
21
22
  config.after(:each) do
22
23
  example_name = self.class.descendant_filtered_examples.first.description
23
- status = self.class.descendant_filtered_examples.first.execution_result.status
24
24
  <%= ERB.new(File.read(File.expand_path('./partials/screenshot.tt', __dir__))).result(binding).strip! %>
25
- AllureHelper.add_screenshot example_name if status == :failed
25
+ AllureHelper.add_screenshot example_name
26
26
  <%= ERB.new(File.read(File.expand_path('./partials/quit_driver.tt', __dir__))).result(binding).strip! %>
27
27
  end
28
28
  end
data/lib/ruby_raider.rb CHANGED
@@ -1,124 +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
-
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].nil? ? load_config_path('page') : options[:path]
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
- desc 'feature [FEATURE_NAME]', 'Creates a new feature'
32
- option :path,
33
- type: :string, required: false, desc: 'The path where your feature will be created', aliases: '-p'
34
- option :delete,
35
- type: :boolean, required: false, desc: 'This will delete the selected feature', aliases: '-d'
36
-
37
- def feature(name)
38
- path = options[:path].nil? ? load_config_path('feature') : options[:path]
39
- if options[:delete]
40
- Scaffolding.new([name, path]).delete_feature
41
- else
42
- Scaffolding.new([name, path]).generate_feature
43
- end
44
- end
45
-
46
- desc 'spec [SPEC_NAME]', 'Creates a new spec'
47
- option :path,
48
- type: :string, required: false, desc: 'The path where your spec will be created', aliases: '-p'
49
- option :delete,
50
- type: :boolean, required: false, desc: 'This will delete the selected spec', aliases: '-d'
51
-
52
- def spec(name)
53
- path = options[:path].nil? ? load_config_path('spec') : options[:path]
54
- if options[:delete]
55
- Scaffolding.new([name, path]).delete_spec
56
- else
57
- Scaffolding.new([name, path]).generate_spec
58
- end
59
- end
60
-
61
- desc 'helper [HELPER_NAME]', 'Creates a new helper'
62
- option :path,
63
- type: :string, required: false, desc: 'The path where your helper will be created', aliases: '-p'
64
- option :delete,
65
- type: :boolean, required: false, desc: 'This will delete the selected helper', aliases: '-d'
66
-
67
- def helper(name)
68
- path = options[:path].nil? ? load_config_path('helper') : options[:path]
69
- if options[:delete]
70
- Scaffolding.new([name, path]).delete_helper
71
- else
72
- Scaffolding.new([name, path]).generate_helper
73
- end
74
- end
75
-
76
- desc 'path [PATH]', 'Sets the default path for scaffolding'
77
- option :feature,
78
- type: :boolean, required: false, desc: 'The default path for your features', aliases: '-f'
79
- option :helper,
80
- type: :boolean, required: false, desc: 'The default path for your helpers', aliases: '-h'
81
- option :spec,
82
- type: :boolean, required: false, desc: 'The default path for your specs', aliases: '-s'
83
- def path(default_path)
84
- type = options.empty? ? 'page' : options.keys.first
85
- Utilities.new.send("#{type}_path=", default_path)
86
- end
87
-
88
- desc 'url [URL]', 'Sets the default url for a project'
89
-
90
- def url(default_url)
91
- Utilities.new.url = default_url
92
- end
93
-
94
- desc 'browser [BROWSER]', 'Sets the default browser for a project'
95
-
96
- def browser(default_browser)
97
- Utilities.new.browser = default_browser
98
- end
99
-
100
- desc 'raid', 'It runs all the tests in a project'
101
-
102
- def raid
103
- Utilities.new.run
104
- end
105
-
106
- desc 'scaffold [SCAFFOLD_NAME]', 'It generates everything needed to start automating'
107
- def scaffold(name)
108
- if Pathname.new('spec').exist? && !Pathname.new('features').exist?
109
- Scaffolding.new([name, load_config_path('spec')]).generate_spec
110
- Scaffolding.new([name, load_config_path('page')]).generate_class
111
- elsif Pathname.new('features').exist?
112
- Scaffolding.new([name, load_config_path('feature')]).generate_feature
113
- Scaffolding.new([name, load_config_path('page')]).generate_class
114
- else
115
- raise 'No features or spec folders where found. We are not sure which type of project you are running'
116
- end
117
- end
118
-
119
- no_commands do
120
- def load_config_path(type)
121
- YAML.load_file('config/config.yml')["#{type}_path"] unless YAML.load_file('config/config.yml').nil?
122
- end
5
+ class RubyRaider
6
+ def self.start
7
+ ScaffoldingCommands.start
123
8
  end
124
9
  end
@@ -5,7 +5,7 @@ require 'thor'
5
5
  class Scaffolding < Thor::Group
6
6
  include Thor::Actions
7
7
 
8
- argument :name
8
+ argument :name, optional: true
9
9
  argument :path, optional: true
10
10
 
11
11
  def self.source_root
@@ -28,6 +28,11 @@ class Scaffolding < Thor::Group
28
28
  template('helper.tt', default_path("helpers/#{name}_helper.rb", '_helper.rb'))
29
29
  end
30
30
 
31
+ def generate_config
32
+ template('../../generators/templates/common/config.tt',
33
+ default_path('config/config.yml', '.yml'))
34
+ end
35
+
31
36
  def delete_class
32
37
  remove_file(default_path("page_objects/pages/#{name}_page.rb", '_page.rb'))
33
38
  end
@@ -44,7 +49,11 @@ class Scaffolding < Thor::Group
44
49
  remove_file(default_path("helpers/#{name}_helper.rb", '_helper.rb'))
45
50
  end
46
51
 
52
+ def delete_config
53
+ remove_file(default_path('config/config.yml', '.yml'))
54
+ end
55
+
47
56
  def default_path(standard_path, file_type)
48
- path.nil? ? standard_path : "#{path}/#{name}#{file_type}"
57
+ path ? "#{path}/#{name}#{file_type}" : standard_path
49
58
  end
50
59
  end
@@ -38,6 +38,16 @@ class Utilities
38
38
  overwrite_yaml
39
39
  end
40
40
 
41
+ def browser_options=(*opts)
42
+ @config['browser_options'] = opts.flatten
43
+ overwrite_yaml
44
+ end
45
+
46
+ def delete_browser_options
47
+ @config.delete('browser_options')
48
+ overwrite_yaml
49
+ end
50
+
41
51
  def run
42
52
  if File.directory? 'spec'
43
53
  system 'rspec spec/'
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.3'
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']
@@ -0,0 +1,234 @@
1
+ require 'pathname'
2
+ require 'yaml'
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
31
+
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
39
+
40
+ context 'with path from config file' do
41
+ before(:all) do
42
+ ScaffoldingCommands.new.invoke(:config)
43
+ end
44
+
45
+ it 'creates a page' do
46
+ scaffold.new.invoke(:page, nil, %W[#{name}])
47
+ expect(Pathname.new("page_objects/pages/#{name}_page.rb")).to be_file
48
+ end
49
+
50
+ it 'creates a feature' do
51
+ scaffold.new.invoke(:feature, nil, %W[#{name}])
52
+ expect(Pathname.new("features/#{name}.feature")).to be_file
53
+ end
54
+
55
+ it 'creates a spec' do
56
+ scaffold.new.invoke(:spec, nil, %W[#{name}])
57
+ expect(Pathname.new("spec/#{name}_spec.rb")).to be_file
58
+ end
59
+
60
+ it 'creates a helper' do
61
+ scaffold.new.invoke(:helper, nil, %W[#{name}])
62
+ expect(Pathname.new("helpers/#{name}_helper.rb")).to be_file
63
+ end
64
+
65
+ it 'deletes a page' do
66
+ scaffold.new.invoke(:page, nil, %W[#{name}])
67
+ scaffold.new.invoke(:page, nil, %W[#{name} --delete])
68
+ expect(Pathname.new("page_objects/pages/#{name}_page.rb")).to_not be_file
69
+ end
70
+
71
+ it 'deletes a feature' do
72
+ scaffold.new.invoke(:feature, nil, %W[#{name}])
73
+ scaffold.new.invoke(:feature, nil, %W[#{name} --delete])
74
+ expect(Pathname.new("features/#{name}.feature")).to_not be_file
75
+ end
76
+
77
+ it 'deletes a spec' do
78
+ scaffold.new.invoke(:spec, nil, %W[#{name}])
79
+ scaffold.new.invoke(:spec, nil, %W[#{name} --delete])
80
+ expect(Pathname.new("spec/#{name}_spec.rb")).to_not be_file
81
+ end
82
+
83
+ it 'deletes a helper' do
84
+ scaffold.new.invoke(:helper, nil, %W[#{name}])
85
+ scaffold.new.invoke(:helper, nil, %W[#{name} --delete])
86
+ expect(Pathname.new("helpers/#{name}_helper.rb")).to_not be_file
87
+ end
88
+
89
+ after(:all) do
90
+ folders = %w[test config page_objects features helpers]
91
+ folders.each do |folder|
92
+ FileUtils.rm_rf(folder)
93
+ end
94
+ FileUtils.rm('spec/test_spec.rb') if Pathname.new('spec/test_spec.rb').exist?
95
+ end
96
+ end
97
+
98
+ context 'with path option' do
99
+ let(:path) { 'test_folder' }
100
+
101
+ it 'creates a page' do
102
+ scaffold.new.invoke(:page, nil, %W[#{name} --path #{path}])
103
+ expect(Pathname.new("#{path}/#{name}_page.rb")).to be_file
104
+ end
105
+
106
+ it 'creates a feature' do
107
+ scaffold.new.invoke(:feature, nil, %W[#{name} --path #{path}])
108
+ expect(Pathname.new("#{path}/#{name}.feature")).to be_file
109
+ end
110
+
111
+ it 'creates a spec' do
112
+ scaffold.new.invoke(:spec, nil, %W[#{name} --path #{path}])
113
+ expect(Pathname.new("#{path}/#{name}_spec.rb")).to be_file
114
+ end
115
+
116
+ it 'creates a helper' do
117
+ scaffold.new.invoke(:helper, nil, %W[#{name} --path #{path}])
118
+ expect(Pathname.new("#{path}/#{name}_helper.rb")).to be_file
119
+ end
120
+
121
+ after(:each) do
122
+ FileUtils.rm_rf(path)
123
+ end
124
+ end
125
+
126
+ context 'changes the default path' do
127
+ let(:path) { 'test_folder' }
128
+
129
+ before(:all) do
130
+ ScaffoldingCommands.new.invoke(:config)
131
+ end
132
+
133
+ it 'changes the path for pages' do
134
+ scaffold.new.invoke(:path, nil, %W[#{path}])
135
+ config = YAML.load_file('config/config.yml')
136
+ expect(config['page_path']).to eql path
137
+ end
138
+
139
+ it 'changes the path for features' do
140
+ scaffold.new.invoke(:path, nil, %W[#{path} -f])
141
+ config = YAML.load_file('config/config.yml')
142
+ expect(config['feature_path']).to eql path
143
+ end
144
+
145
+ it 'changes the path for specs' do
146
+ scaffold.new.invoke(:path, nil, %W[#{path} -s])
147
+ config = YAML.load_file('config/config.yml')
148
+ expect(config['spec_path']).to eql path
149
+ end
150
+
151
+ it 'creates page' do
152
+ scaffold.new.invoke(:path, nil, %W[#{path}])
153
+ scaffold.new.invoke(:page, nil, %W[#{name}])
154
+ expect(Pathname.new("#{path}/#{name}_page.rb")).to be_file
155
+ end
156
+
157
+ it 'creates feature' do
158
+ scaffold.new.invoke(:path, nil, %W[#{path} -f])
159
+ scaffold.new.invoke(:feature, nil, %W[#{name}])
160
+ expect(Pathname.new("#{path}/#{name}.feature")).to be_file
161
+ end
162
+
163
+ it 'creates spec' do
164
+ scaffold.new.invoke(:path, nil, %W[#{path} -s])
165
+ scaffold.new.invoke(:spec, nil, %W[#{name}])
166
+ expect(Pathname.new("#{path}/#{name}_spec.rb")).to be_file
167
+ end
168
+
169
+ it 'creates spec' do
170
+ scaffold.new.invoke(:path, nil, %W[#{path} -h])
171
+ scaffold.new.invoke(:helper, nil, %W[#{name}])
172
+ expect(Pathname.new("#{path}/#{name}_helper.rb")).to be_file
173
+ end
174
+
175
+ after(:all) do
176
+ folders = %w[test_folder test config]
177
+ folders.each do |folder|
178
+ FileUtils.rm_rf(folder)
179
+ end
180
+ end
181
+ end
182
+
183
+ context 'updates the config file' do
184
+ before(:all) do
185
+ CommonGenerator.new(%w[rspec selenium test]).invoke(:generate_config_file)
186
+ FileUtils.cp_lr('test/config', './')
187
+ end
188
+
189
+ it 'updates the url' do
190
+ scaffold.new.invoke(:url, nil, %W[test.com])
191
+ config = YAML.load_file('config/config.yml')
192
+ expect(config['url']).to eql 'test.com'
193
+ end
194
+
195
+ it 'updates the browser' do
196
+ scaffold.new.invoke(:browser, nil, %W[:firefox])
197
+ config = YAML.load_file('config/config.yml')
198
+ expect(config['browser']).to eql ':firefox'
199
+ end
200
+
201
+ it 'updates the browser and the browser options' do
202
+ scaffold.new.invoke(:browser, nil, %W[:firefox --opts headless start-maximized start-fullscreen])
203
+ config = YAML.load_file('config/config.yml')
204
+ expect(config['browser']).to eql ':firefox'
205
+ expect(config['browser_options']).to eql %W[headless start-maximized start-fullscreen]
206
+ end
207
+
208
+ it 'updates only the browser options' do
209
+ scaffold.new.invoke(:browser, nil, %W[:firefox --opts headless])
210
+ config = YAML.load_file('config/config.yml')
211
+ expect(config['browser_options']).to eql %w[headless]
212
+ end
213
+
214
+ it 'deletes the browser options when passed with the delete parameter' do
215
+ scaffold.new.invoke(:browser, nil, %W[:firefox --opts headless --delete])
216
+ config = YAML.load_file('config/config.yml')
217
+ expect(config['browser_options']).to be_nil
218
+ end
219
+
220
+ it 'deletes the browser options' do
221
+ scaffold.new.invoke(:browser, nil, %W[:firefox --opts headless])
222
+ scaffold.new.invoke(:browser, nil, %W[--delete])
223
+ config = YAML.load_file('config/config.yml')
224
+ expect(config['browser_options']).to be_nil
225
+ end
226
+
227
+ after(:all) do
228
+ folders = %w[test config]
229
+ folders.each do |folder|
230
+ FileUtils.rm_rf(folder)
231
+ end
232
+ end
233
+ 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.3
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-05 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,12 +0,0 @@
1
- <% if automation == 'selenium' %>
2
- def new_driver(caps = {})
3
- browser = YAML.load_file('config/config.yml')['browser'].to_sym
4
- @driver = Selenium::WebDriver.for(browser, desired_capabilities: caps)
5
- end
6
- <% else %>
7
- def new_driver
8
- appium_file = File.join(Dir.pwd, 'appium.txt')
9
- caps = Appium.load_appium_txt(file: appium_file)
10
- @driver = Appium::Driver.new(caps)
11
- end
12
- <% end %>