Top Level Namespace

Defined Under Namespace

Modules: GenerateRubyTests, Helper, Pages, Screens

Constant Summary collapse

ENVIRONMENT =
ENV['ENVIRONMENT']
CONFIG =
YAML.load_file(File.dirname(__FILE__) + "/config/#{ENVIRONMENT_TYPE}.yml")
ENVIRONMENT_TYPE =
ENV['ENVIRONMENT_TYPE']
HEADLESS =
ENV['HEADLESS']
SERVER_URL =
'http://localhost:4723/wd/hub'.freeze
PORT =
4723
TWENTY_SECONDS =
20

Instance Method Summary collapse

Instance Method Details

#camelize(string) ⇒ Object



67
68
69
70
71
72
73
# File 'lib/generate_ruby_tests/generate_ruby_test_helper.rb', line 67

def camelize(string)
  camelized = ''
  string.split('_').each do |s|
    camelized += s.capitalize
  end
  camelized
end

#create_feature_file(name) ⇒ Object



3
4
5
6
7
8
9
# File 'lib/generate_ruby_tests/generate_ruby_test_helper.rb', line 3

def create_feature_file(name)
  # opcoes usadas para gerar o arquivo na funcao de modelo
  opts = { name: camelize(name) }
  # Thor cria um arquivo com base no modelo templates/feature.tt
  template('feature', File.join(FileUtils.pwd, 'features', 'specifications',
                                "#{name.downcase}.feature"), opts)
end

#create_page_file(name) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/generate_ruby_tests/generate_ruby_test_helper.rb', line 19

def create_page_file(name)
  # opcoes usadas para gerar o arquivo na funcao de modelo
  opts = { name: camelize(name) }
  # Thor cria um arquivo com base no modelo templates/page.tt
  template('page', File.join(FileUtils.pwd, 'features', 'pages',
                             "#{name.downcase}_page.rb"), opts)
end

#create_page_rspec_file(name) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/generate_ruby_tests/generate_ruby_test_helper.rb', line 27

def create_page_rspec_file(name)
  # opcoes usadas para gerar o arquivo na funcao de modelo
  opts = { name: camelize(name) }
  # Thor cria um arquivo com base no modelo templates/page.tt
  template('page', File.join(FileUtils.pwd, 'pages',
                             "#{name.downcase}_page.rb"), opts)
end

#create_screens_file(name) ⇒ Object



51
52
53
54
55
56
57
# File 'lib/generate_ruby_tests/generate_ruby_test_helper.rb', line 51

def create_screens_file(name)
  # opcoes usadas para gerar o arquivo na funcao de modelo
  opts = { name: camelize(name) }
  # Thor cria um arquivo com base no modelo templates/screens.tt
  template('screens', File.join(FileUtils.pwd, 'features', 'screens',
                                "#{name.downcase}_screens.rb"), opts)
end

#create_service_file(name) ⇒ Object



35
36
37
38
39
40
41
# File 'lib/generate_ruby_tests/generate_ruby_test_helper.rb', line 35

def create_service_file(name)
  # opcoes usadas para gerar o arquivo na funcao de modelo
  opts = { name: camelize(name) }
  # Thor cria um arquivo com base no modelo templates/services.tt
  template('services', File.join(FileUtils.pwd, 'features', 'services',
                                 "#{name.downcase}_services.rb"), opts)
end

#create_service_rspec_file(name) ⇒ Object



43
44
45
46
47
48
49
# File 'lib/generate_ruby_tests/generate_ruby_test_helper.rb', line 43

def create_service_rspec_file(name)
  # opcoes usadas para gerar o arquivo na funcao de modelo
  opts = { name: camelize(name) }
  # Thor cria um arquivo com base no modelo templates/services.tt
  template('services', File.join(FileUtils.pwd, 'services',
                                 "#{name.downcase}_services.rb"), opts)
end

#create_spec_file(name) ⇒ Object



59
60
61
62
63
64
65
# File 'lib/generate_ruby_tests/generate_ruby_test_helper.rb', line 59

def create_spec_file(name)
  # opcoes usadas para gerar o arquivo na funcao de modelo
  opts = { name: camelize(name) }
  # Thor cria um arquivo com base no modelo templates/specs.tt
  template('specs', File.join(FileUtils.pwd, 'specs',
                              "#{name.downcase}_spec.rb"), opts)
end

#create_steps_file(name) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/generate_ruby_tests/generate_ruby_test_helper.rb', line 11

def create_steps_file(name)
  # opcoes usadas para gerar o arquivo na funcao de modelo
  opts = { name: camelize(name) }
  # Thor cria um arquivo com base no modelo templates/steps.tt
  template('steps', File.join(FileUtils.pwd, 'features', 'steps_definitions',
                              "#{name.downcase}_steps.rb"), opts)
end

#in_root_project_folder?Boolean

Returns:

  • (Boolean)


75
76
77
78
79
80
81
82
# File 'lib/generate_ruby_tests/generate_ruby_test_helper.rb', line 75

def in_root_project_folder?
  # Olha se o usuario esta na pasta raiz do projeto
  unless Dir.exist?(File.join(FileUtils.pwd, 'features', 'specifications'))
    puts 'Please run this command on the root folder of the project'
    exit 1
  end
  true
end

#in_root_project_folder_rspec?Boolean

Returns:

  • (Boolean)


85
86
87
88
89
90
91
92
# File 'lib/generate_ruby_tests/generate_ruby_test_helper.rb', line 85

def in_root_project_folder_rspec?
  # Olha se o usuario esta na pasta raiz do projeto
  unless Dir.exist?(File.join(FileUtils.pwd, 'specs'))
    puts 'Please run this command on the root folder of the project'
    exit 1
  end
  true
end

#scroll_screen(xone, yone, xtwo, ytwo) ⇒ Object



10
11
12
13
# File 'lib/SkeletonMobile/features/support/hooks.rb', line 10

def scroll_screen(xone, yone, xtwo, ytwo)
  Appium::TouchAction.new.long_press(x: xone, y: yone)
                     .move_to(x: xtwo, y: ytwo).release.perform
end

#seleniumObject

register driver according with browser chosen



19
20
21
22
23
24
25
26
27
28
# File 'lib/SkeletonWeb/features/support/env.rb', line 19

Capybara.register_driver :selenium do |app|
  if HEADLESS.eql?('headless')
    option = ::Selenium::WebDriver::Chrome::Options.new(args: ['--headless', '--disable-gpu', '--window-size=1600,1024'])
    Capybara::Selenium::Driver.new(app, browser: :chrome, options: option)

  elsif HEADLESS.eql?('no_headless')
    option = ::Selenium::WebDriver::Chrome::Options.new(args: ['--disable-infobars', 'window-size=1600,1024'])
    Capybara::Selenium::Driver.new(app, browser: :chrome, options: option)
  end
end