class WatirSpec::RakeTasks
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/watirspec/rake_tasks.rb, line 5 def initialize super namespace :watirspec do desc 'Initialize WatirSpec' task :init do init_watirspec print_usage end desc 'List WatirSpec examples' task :list do print_specs end desc 'Run WatirSpec examples' task :run, %i[spec line] do |_, args| run(args) end end end
Private Instance Methods
init_watirspec()
click to toggle source
# File lib/watirspec/rake_tasks.rb, line 29 def init_watirspec Dir.mkdir('spec') unless Dir.exist?('spec') return if File.exist?('spec/watirspec_helper.rb') File.open('spec/watirspec_helper.rb', 'w') do |file| file.write(watirspec_helper_template) end end
print_specs()
click to toggle source
# File lib/watirspec/rake_tasks.rb, line 38 def print_specs puts "The following spec files are present:\n\n" spec_files.each do |file| filename = file.sub("#{watirspec_path}/", '') puts " #{filename}" end end
print_usage()
click to toggle source
# File lib/watirspec/rake_tasks.rb, line 99 def print_usage p <<~PRINT_USAGE File spec/watirspec_helper.rb is successfully created! Please, check it and customize for your needs. Once done, you can start using WatirSpec. Run all WatirSpec examples: $ bundle exec rake watirspec:run Run specific WatirSpec example: $ bundle exec rake watirspec:run[elements/div] Run WatirSpec example on a custom line: $ bundle exec rake watirspec:run[elements/div, 50] List all WatirSpec examples: $ bundle exec rake watirspec:list PRINT_USAGE end
rspec_binary()
click to toggle source
# File lib/watirspec/rake_tasks.rb, line 69 def rspec_binary rspec_path = Bundler.rubygems.find_name('rspec-core').first.full_gem_path "#{rspec_path}/exe/rspec" end
rspec_command(**args)
click to toggle source
# File lib/watirspec/rake_tasks.rb, line 52 def rspec_command(**args) cmd = [rspec_binary] if args[:spec] spec_file = spec_files.find { |file| file == "#{watirspec_path}/#{args[:spec]}_spec.rb" } spec_file << ":#{args[:line]}" if args[:line] cmd << spec_file else cmd << spec_files end cmd.join(' ') end
run(**args)
click to toggle source
# File lib/watirspec/rake_tasks.rb, line 46 def run(**args) return if system(rspec_command(args)) exit $CHILD_STATUS.exitstatus || 1 end
spec_files()
click to toggle source
# File lib/watirspec/rake_tasks.rb, line 65 def spec_files Dir.glob("#{watirspec_path}/**/*_spec.rb") end
watirspec_helper_template()
click to toggle source
# File lib/watirspec/rake_tasks.rb, line 79 def watirspec_helper_template <<~RUBY require 'watirspec' # require your gems WatirSpec.implementation do |watirspec| # add WatirSpec implementation (see example below) # # watirspec.name = :watizzle # watirspec.browser_class = Watir::Browser # watirspec.browser_args = [:firefox, {}] # watirspec.guard_proc = lambda do |args| # args.include?(:firefox) # end end WatirSpec.run! RUBY end
watirspec_path()
click to toggle source
# File lib/watirspec/rake_tasks.rb, line 74 def watirspec_path watir_path = Bundler.rubygems.find_name('watir').first.full_gem_path "#{watir_path}/spec/watirspec" end