taf 0.3.7 → 0.3.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/taf +23 -2
- data/lib/taf.rb +48 -0
- data/lib/taf/browser.rb +103 -0
- data/lib/taf/cmd_line.rb +74 -0
- data/lib/taf/create_directories.rb +53 -0
- data/lib/taf/json_parser.rb +48 -0
- data/lib/taf/junit_report.rb +73 -0
- data/lib/taf/my_log.rb +21 -0
- data/lib/taf/parser.rb +37 -0
- data/lib/taf/report.rb +110 -0
- data/lib/taf/report_summary.rb +56 -0
- data/lib/taf/screenshot.rb +30 -0
- data/lib/taf/test_engine.rb +82 -0
- data/lib/taf/test_steps.rb +38 -0
- data/lib/taf/test_steps/handlers/base.rb +90 -0
- data/lib/taf/test_steps/handlers/base/browser_back.rb +21 -0
- data/lib/taf/test_steps/handlers/base/browser_forward.rb +21 -0
- data/lib/taf/test_steps/handlers/base/browser_open.rb +21 -0
- data/lib/taf/test_steps/handlers/base/browser_quit.rb +21 -0
- data/lib/taf/test_steps/handlers/base/browser_refresh.rb +21 -0
- data/lib/taf/test_steps/handlers/base/capture_alert.rb +22 -0
- data/lib/taf/test_steps/handlers/base/check_box.rb +22 -0
- data/lib/taf/test_steps/handlers/base/check_boxdata.rb +35 -0
- data/lib/taf/test_steps/handlers/base/check_browser_title.rb +21 -0
- data/lib/taf/test_steps/handlers/base/check_logs.rb +25 -0
- data/lib/taf/test_steps/handlers/base/check_screendata.rb +23 -0
- data/lib/taf/test_steps/handlers/base/check_url.rb +22 -0
- data/lib/taf/test_steps/handlers/base/click_button.rb +33 -0
- data/lib/taf/test_steps/handlers/base/execute_system_command.rb +23 -0
- data/lib/taf/test_steps/handlers/base/handle_browser_window.rb +23 -0
- data/lib/taf/test_steps/handlers/base/ipause.rb +21 -0
- data/lib/taf/test_steps/handlers/base/list_all_dropdowns_values.rb +23 -0
- data/lib/taf/test_steps/handlers/base/login.rb +59 -0
- data/lib/taf/test_steps/handlers/base/open_url.rb +22 -0
- data/lib/taf/test_steps/handlers/base/ping_test.rb +27 -0
- data/lib/taf/test_steps/handlers/base/radio_button.rb +24 -0
- data/lib/taf/test_steps/handlers/base/select_dropdown.rb +24 -0
- data/lib/taf/test_steps/handlers/base/send_special_keys.rb +22 -0
- data/lib/taf/test_steps/handlers/base/write_box_data.rb +35 -0
- data/lib/taf/version.rb +5 -0
- metadata +41 -43
- data/lib/functions/handlers.rb +0 -6
- data/lib/functions/handlers/base_handler.rb +0 -91
- data/lib/functions/handlers/browser_back.rb +0 -21
- data/lib/functions/handlers/browser_forward.rb +0 -21
- data/lib/functions/handlers/browser_quit.rb +0 -21
- data/lib/functions/handlers/browser_refresh.rb +0 -21
- data/lib/functions/handlers/capture_alert.rb +0 -22
- data/lib/functions/handlers/check_box.rb +0 -21
- data/lib/functions/handlers/check_boxdata.rb +0 -35
- data/lib/functions/handlers/check_browser_title.rb +0 -21
- data/lib/functions/handlers/check_logs.rb +0 -23
- data/lib/functions/handlers/check_screendata.rb +0 -21
- data/lib/functions/handlers/check_url.rb +0 -22
- data/lib/functions/handlers/click_button.rb +0 -33
- data/lib/functions/handlers/execute_system_command.rb +0 -23
- data/lib/functions/handlers/handle_browser_window.rb +0 -23
- data/lib/functions/handlers/ipause.rb +0 -21
- data/lib/functions/handlers/list_all_dropdowns_values.rb +0 -23
- data/lib/functions/handlers/login.rb +0 -59
- data/lib/functions/handlers/open_url.rb +0 -35
- data/lib/functions/handlers/ping_test.rb +0 -27
- data/lib/functions/handlers/radio_button.rb +0 -22
- data/lib/functions/handlers/select_dropdown.rb +0 -24
- data/lib/functions/handlers/send_special_keys.rb +0 -22
- data/lib/functions/handlers/write_box_data.rb +0 -35
- data/lib/main.rb +0 -31
- data/lib/parser/json_parser.rb +0 -50
- data/lib/parser/parser.rb +0 -49
- data/lib/report/junit_report.rb +0 -74
- data/lib/report/report.rb +0 -116
- data/lib/report/report_summary.rb +0 -53
- data/lib/taf_config.rb +0 -46
- data/lib/utils/browser.rb +0 -98
- data/lib/utils/cmd_line.rb +0 -71
- data/lib/utils/create_directories.rb +0 -50
- data/lib/utils/exceptions.rb +0 -7
- data/lib/utils/logger.rb +0 -21
- data/lib/utils/screenshot.rb +0 -30
- data/lib/utils/test_engine.rb +0 -77
- data/lib/utils/test_steps.rb +0 -38
- data/lib/version.rb +0 -21
data/lib/taf_config.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Created on 20 Sept 2017
|
4
|
-
# @author: Andy Perrett
|
5
|
-
#
|
6
|
-
# Versions:
|
7
|
-
# 1.0 - Baseline
|
8
|
-
#
|
9
|
-
# taf_config.rb - Framework Config file
|
10
|
-
|
11
|
-
# list of all the required gems.
|
12
|
-
require 'selenium-webdriver'
|
13
|
-
require 'watir'
|
14
|
-
require 'rubygems'
|
15
|
-
require 'fileutils'
|
16
|
-
require 'logger'
|
17
|
-
require 'net/ping'
|
18
|
-
require 'nokogiri'
|
19
|
-
require 'time_difference'
|
20
|
-
require 'colored'
|
21
|
-
require 'optparse'
|
22
|
-
require 'fileutils'
|
23
|
-
require 'securerandom'
|
24
|
-
require 'json'
|
25
|
-
|
26
|
-
# list of all the required files
|
27
|
-
require_relative './utils/test_steps'
|
28
|
-
require_relative './report/report'
|
29
|
-
require_relative './utils/browser'
|
30
|
-
require_relative './utils/cmd_line'
|
31
|
-
require_relative './utils/create_directories'
|
32
|
-
require_relative './utils/logger'
|
33
|
-
require_relative './utils/test_engine'
|
34
|
-
require_relative './utils/screenshot'
|
35
|
-
require_relative './utils/exceptions'
|
36
|
-
require_relative './report/junit_report'
|
37
|
-
require_relative './report/report_summary'
|
38
|
-
require_relative './parser/parser'
|
39
|
-
require_relative './parser/json_parser'
|
40
|
-
|
41
|
-
# Require all test step handlers, which register themselves with
|
42
|
-
# TestStep.handlers when the files are required.
|
43
|
-
require_relative './functions/handlers'
|
44
|
-
|
45
|
-
# Watir config. set wait:
|
46
|
-
Watir.default_timeout = 60
|
data/lib/utils/browser.rb
DELETED
@@ -1,98 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Created on 02 Aug 2018
|
4
|
-
# @author: Andy Perrett
|
5
|
-
#
|
6
|
-
# Versions:
|
7
|
-
# 1.0 - Baseline
|
8
|
-
#
|
9
|
-
# browser_setup.rb - a browser functions
|
10
|
-
module Browser
|
11
|
-
require_relative '../taf_config.rb'
|
12
|
-
# open_browser function
|
13
|
-
def self.open_browser
|
14
|
-
lc_browser_type = CMDLine.browser_type.downcase
|
15
|
-
case lc_browser_type
|
16
|
-
when 'chrome'
|
17
|
-
chrome
|
18
|
-
when 'chrome-headless'
|
19
|
-
chrome_headless
|
20
|
-
when 'firefox'
|
21
|
-
firefox
|
22
|
-
when 'firefox-headless'
|
23
|
-
firefox_headless
|
24
|
-
else
|
25
|
-
MyLog.log.error "unable to open selected browser: #{lc_browser_type}"
|
26
|
-
raise BrowserFailedOpen
|
27
|
-
end
|
28
|
-
rescue BrowserFailedOpen => e
|
29
|
-
# construct the error message from custom text and the actual system error
|
30
|
-
# message (converted to a string)
|
31
|
-
error_text = 'Unable to open'\
|
32
|
-
"the requested browser: #{lc_browser_type} " + e.to_s
|
33
|
-
raise error_text
|
34
|
-
end
|
35
|
-
|
36
|
-
# chrome browser details
|
37
|
-
def self.chrome
|
38
|
-
@browser = Watir::Browser.new :chrome, switches: %w[
|
39
|
-
--acceptInsecureCerts-true --start-maximized --window-size=1920,1080
|
40
|
-
]
|
41
|
-
end
|
42
|
-
|
43
|
-
# chrome headless browser details
|
44
|
-
def self.chrome_headless
|
45
|
-
@browser = Watir::Browser.new :chrome, switches: %w[
|
46
|
-
--start-maximized --disable-gpu --headless --acceptInsecureCerts-true
|
47
|
-
--no-sandbox --window-size=1920,1080
|
48
|
-
]
|
49
|
-
end
|
50
|
-
|
51
|
-
# firefox browser details
|
52
|
-
def self.firefox
|
53
|
-
caps = Selenium::WebDriver::Remote::Capabilities.firefox
|
54
|
-
caps['acceptInsecureCerts'] = true
|
55
|
-
driver = Selenium::WebDriver.for(:firefox, desired_capabilities: caps)
|
56
|
-
@browser = Watir::Browser.new(driver)
|
57
|
-
browser_full_screen
|
58
|
-
end
|
59
|
-
|
60
|
-
# firefox headless browser details
|
61
|
-
def self.firefox_headless
|
62
|
-
caps = Selenium::WebDriver::Remote::Capabilities.firefox
|
63
|
-
options = Selenium::WebDriver::Firefox::Options.new(args: ['-headless'])
|
64
|
-
caps['acceptInsecureCerts'] = true
|
65
|
-
driver = Selenium::WebDriver.for(:firefox, options: options,
|
66
|
-
desired_capabilities: caps)
|
67
|
-
@browser = Watir::Browser.new(driver)
|
68
|
-
# makes the browser full screen.
|
69
|
-
@browser.driver.manage.window.resize_to(1920, 1200)
|
70
|
-
@browser.driver.manage.window.move_to(0, 0)
|
71
|
-
end
|
72
|
-
|
73
|
-
# makes the browser full screen.
|
74
|
-
def self.browser_full_screen
|
75
|
-
screen_width = @browser.execute_script('return screen.width;')
|
76
|
-
screen_height = @browser.execute_script('return screen.height;')
|
77
|
-
@browser.driver.manage.window.resize_to(screen_width, screen_height)
|
78
|
-
@browser.driver.manage.window.move_to(0, 0)
|
79
|
-
end
|
80
|
-
|
81
|
-
# define browser value
|
82
|
-
def self.b
|
83
|
-
@browser
|
84
|
-
end
|
85
|
-
|
86
|
-
# Check browser version
|
87
|
-
def self.browser_version
|
88
|
-
browser_name = CMDLine.browser_type.downcase
|
89
|
-
case browser_name
|
90
|
-
when 'chrome', 'chrome-headless'
|
91
|
-
@browser.driver.capabilities[:version]
|
92
|
-
when 'firefox', 'firefox-headless'
|
93
|
-
@browser.execute_script('return navigator.userAgent;').split('/')[-1]
|
94
|
-
end
|
95
|
-
rescue StandardError
|
96
|
-
'No Browser version'
|
97
|
-
end
|
98
|
-
end
|
data/lib/utils/cmd_line.rb
DELETED
@@ -1,71 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Created on 13 May 2019
|
4
|
-
# @author: Andy Perrett
|
5
|
-
#
|
6
|
-
# Versions:
|
7
|
-
# 1.0 - Baseline
|
8
|
-
#
|
9
|
-
# cmd_line.rb - command line script Script
|
10
|
-
module CMDLine
|
11
|
-
require_relative '../taf_config.rb'
|
12
|
-
|
13
|
-
def self.cmdline_input
|
14
|
-
# check if the test suite file name exists on the command line
|
15
|
-
# allow a user to input 2 arguments in to CMD line the 2 values are:
|
16
|
-
# Testcase Folder and Browser.
|
17
|
-
options = {}
|
18
|
-
ARGV.push('-h') if ARGV.empty?
|
19
|
-
OptionParser.new do |parser|
|
20
|
-
# Whenever we see -b, -t or --browser, or --tests with an
|
21
|
-
# argument, save the argument.
|
22
|
-
parser.banner = 'Usage: taf [options]'
|
23
|
-
parser.on(
|
24
|
-
'-h',
|
25
|
-
'--help',
|
26
|
-
"2 arguments are required: {Browser} {Testcase folder}'"
|
27
|
-
) do
|
28
|
-
puts parser
|
29
|
-
Process.exit
|
30
|
-
end
|
31
|
-
|
32
|
-
parser.on(
|
33
|
-
'-b',
|
34
|
-
'--browser browser',
|
35
|
-
'Supported Browsers: chrome,' \
|
36
|
-
' chrome-headless, firefox, firefox-headless'
|
37
|
-
) do |b|
|
38
|
-
options[:browser] = b
|
39
|
-
@browser_type = options[:browser]
|
40
|
-
unless ['chrome', 'chrome-headless', 'firefox', 'firefox-headless']
|
41
|
-
.include?(@browser_type)
|
42
|
-
MyLog.log.warn 'A valid Browser has not been supplied as a' \
|
43
|
-
' command-line parameter as expected'
|
44
|
-
Process.exit
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
parser.on('-t', '--tests testfolder', 'i.e. tests/') do |t|
|
49
|
-
options[:testfolder] = t
|
50
|
-
@tests_folder = options[:testfolder]
|
51
|
-
if Parser.test_files.size.positive?
|
52
|
-
MyLog.log.info "There are: #{Parser.test_files.size}" \
|
53
|
-
' test files to process'
|
54
|
-
MyLog.log.info "List of Tests files: #{Parser.test_files} \n"
|
55
|
-
else
|
56
|
-
MyLog.log.warn 'A valid Test case location has not been supplied' \
|
57
|
-
' as a command-line parameter as expected'
|
58
|
-
Process.exit
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end.parse!
|
62
|
-
end
|
63
|
-
|
64
|
-
def self.browser_type
|
65
|
-
@browser_type
|
66
|
-
end
|
67
|
-
|
68
|
-
def self.tests_folder
|
69
|
-
@tests_folder
|
70
|
-
end
|
71
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Created on 20 Sept 2017
|
4
|
-
# @author: Andy Perrett
|
5
|
-
#
|
6
|
-
# Versions:
|
7
|
-
# 1.0 - Baseline
|
8
|
-
#
|
9
|
-
# create_directories.rb - Creates folder structures.
|
10
|
-
module CreateDirectories
|
11
|
-
# create the project directories and open the test results file,
|
12
|
-
# the screenshot will be placed in a unique filename based upon the testStep.
|
13
|
-
# A single top-level directory named after the Project ID will be used and the
|
14
|
-
# target sub-directories will be created for each run of the test
|
15
|
-
#
|
16
|
-
# ----> Project directory (working directory)
|
17
|
-
#
|
18
|
-
# ------->directory named after the test run ID UUID
|
19
|
-
|
20
|
-
def self.construct_projectdirs
|
21
|
-
# create top-level directory if it doesn't already exist:
|
22
|
-
# Results/Project_id
|
23
|
-
project_id = JsonParser.project_id.delete(' ')
|
24
|
-
project_dir = File.join('Results', project_id)
|
25
|
-
|
26
|
-
FileUtils.mkdir_p(project_dir)
|
27
|
-
|
28
|
-
# Generate UUID
|
29
|
-
@run_uuid = SecureRandom.uuid
|
30
|
-
end
|
31
|
-
|
32
|
-
def self.construct_testspecdirs
|
33
|
-
# create directories for each test spec for screenshots:
|
34
|
-
# Results/Project_id/Run_ID_UUID
|
35
|
-
project_id = JsonParser.project_id.delete(' ')
|
36
|
-
screenshot_dir = File.join('Results', project_id, "Run_ID_#{@run_uuid}")
|
37
|
-
|
38
|
-
abs_path_screenshot_dir = File.absolute_path(screenshot_dir)
|
39
|
-
FileUtils.mkdir_p(abs_path_screenshot_dir)
|
40
|
-
# if any issues then set error message and re-raise the exception
|
41
|
-
rescue StandardError => e
|
42
|
-
# construct the error message from custom text and the actual system error
|
43
|
-
# message (converted to a string)
|
44
|
-
error_to_display = 'Error creating directory:' + e.to_s
|
45
|
-
raise error_to_display
|
46
|
-
else
|
47
|
-
# if no exception then return the screenshot file directory path
|
48
|
-
abs_path_screenshot_dir
|
49
|
-
end
|
50
|
-
end
|
data/lib/utils/exceptions.rb
DELETED
data/lib/utils/logger.rb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Created on 04 Feb 2019
|
4
|
-
# @author: Andy Perrett
|
5
|
-
#
|
6
|
-
# Versions:
|
7
|
-
# 1.0 - Baseline
|
8
|
-
#
|
9
|
-
# logger.rb - logger file
|
10
|
-
# Logger function.
|
11
|
-
module MyLog
|
12
|
-
require_relative '../taf_config.rb'
|
13
|
-
def self.log
|
14
|
-
if @logger.nil?
|
15
|
-
@logger = Logger.new STDOUT
|
16
|
-
@logger.level = Logger::DEBUG
|
17
|
-
@logger.datetime_format = '%Y-%m-%d %H:%M:%S '
|
18
|
-
end
|
19
|
-
@logger
|
20
|
-
end
|
21
|
-
end
|
data/lib/utils/screenshot.rb
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Created on 07 May 2019
|
4
|
-
# @author: Andy Perrett
|
5
|
-
#
|
6
|
-
# Versions:
|
7
|
-
# 1.0 - Baseline
|
8
|
-
#
|
9
|
-
# screenshot.rb - a screenshot save function
|
10
|
-
module Screenshot
|
11
|
-
require_relative '../taf_config.rb'
|
12
|
-
|
13
|
-
# create screenshot filename and save the screenshot if the test has failed.
|
14
|
-
def self.save_screenshot(test_step_idx)
|
15
|
-
time = Time.now.strftime('%H%M')
|
16
|
-
sc_dir = CreateDirectories.construct_testspecdirs
|
17
|
-
|
18
|
-
sc_file_name = "#{sc_dir}/Test_ID-#{JsonParser.test_id.delete(' ')}"\
|
19
|
-
"_Test_step-#{test_step_idx}_Failed_#{time}.png"
|
20
|
-
|
21
|
-
# Screenshot capture for websites
|
22
|
-
Browser.b.screenshot.save sc_file_name
|
23
|
-
MyLog.log.info("Screenshot saved to: #{sc_file_name} \n")
|
24
|
-
sc_file_name
|
25
|
-
rescue StandardError => e
|
26
|
-
# construct the error message from custom text and the actual system
|
27
|
-
# error message (converted to a string).
|
28
|
-
MyLog.log.warn("Error saving the screenshot: #{sc_file_name} #{e}")
|
29
|
-
end
|
30
|
-
end
|
data/lib/utils/test_engine.rb
DELETED
@@ -1,77 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Created on 20 Sept 2017
|
4
|
-
# @author: Andy Perrett
|
5
|
-
#
|
6
|
-
# Versions:
|
7
|
-
# 1.0 - Baseline
|
8
|
-
#
|
9
|
-
# test_engine.rb - controls the iteration through the test suite and specs
|
10
|
-
module TestEngine
|
11
|
-
require_relative '../taf_config.rb'
|
12
|
-
|
13
|
-
# process the test files to execute the tests
|
14
|
-
def self.process_testfiles
|
15
|
-
total_passes = 0
|
16
|
-
total_failures = 0
|
17
|
-
total_skipped = 0
|
18
|
-
|
19
|
-
# loop through all the available test files to execute the tests
|
20
|
-
Parser.test_files.each_with_index do |test_file_name, test_file_index|
|
21
|
-
metrics = Struct.new(:stepPasses, :stepFailures, :stepSkipped)
|
22
|
-
.new(0, 0, 0)
|
23
|
-
|
24
|
-
begin
|
25
|
-
# read in the test data
|
26
|
-
tests = Parser.read_test_data(test_file_name)
|
27
|
-
# if unable to read the test data, show the error and move onto the
|
28
|
-
# next file (if there is one)
|
29
|
-
rescue StandardError => e
|
30
|
-
MyLog.log.warn 'Terminating the current test spec: ' \
|
31
|
-
"#{test_file_name} #{e}"
|
32
|
-
MyLog.log.info '...continuing with the next test file (if there is one)'
|
33
|
-
end
|
34
|
-
|
35
|
-
# create project folders - these only need creating once per test suite
|
36
|
-
CreateDirectories.construct_projectdirs
|
37
|
-
|
38
|
-
# get the test case start time
|
39
|
-
tc_start = Report.current_time
|
40
|
-
|
41
|
-
begin
|
42
|
-
tests['steps'].each_with_index do |test_step, test_step_idx|
|
43
|
-
test_step_idx += 1
|
44
|
-
|
45
|
-
parsed_steps = Parser.parse_test_step_data(test_step)
|
46
|
-
|
47
|
-
# process the test step data
|
48
|
-
TestSteps.process_test_steps(test_file_name, test_step_idx,
|
49
|
-
parsed_steps, metrics)
|
50
|
-
end
|
51
|
-
rescue TafError => e
|
52
|
-
warn e
|
53
|
-
MyLog.log.warn e
|
54
|
-
end
|
55
|
-
|
56
|
-
# get the test case end time
|
57
|
-
tc_end = Report.current_time
|
58
|
-
|
59
|
-
# output the test results summary for the current test case,
|
60
|
-
# pass in the test file number to save the summary against it's testfile
|
61
|
-
ReportSummary.test_step_summary(test_file_name, test_file_index, metrics)
|
62
|
-
JunitReport.test_step_summary_xml(test_file_name, test_file_index,
|
63
|
-
tc_start, tc_end, metrics)
|
64
|
-
|
65
|
-
# close the browser if created
|
66
|
-
Browser.b.quit
|
67
|
-
|
68
|
-
# record total passes and failures and reset the failure counters for
|
69
|
-
# the test steps
|
70
|
-
total_passes += metrics.stepPasses
|
71
|
-
total_failures += metrics.stepFailures
|
72
|
-
total_skipped += metrics.stepSkipped
|
73
|
-
end
|
74
|
-
|
75
|
-
[total_passes, total_failures, total_skipped]
|
76
|
-
end
|
77
|
-
end
|
data/lib/utils/test_steps.rb
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Created on 20 Sept 2017
|
4
|
-
# @author: Andy Perrett
|
5
|
-
#
|
6
|
-
# Versions:
|
7
|
-
# 1.0 - Baseline
|
8
|
-
#
|
9
|
-
# test_steps.rb - process the required test step functions
|
10
|
-
module TestSteps
|
11
|
-
require_relative '../taf_config.rb'
|
12
|
-
|
13
|
-
def self.handlers
|
14
|
-
@handlers ||= {}
|
15
|
-
end
|
16
|
-
|
17
|
-
# process the test step data by matching the test step functions and
|
18
|
-
# processing the associated data accordingly
|
19
|
-
def self.process_test_steps(test_file_name, test_step_idx, step_attributes,
|
20
|
-
metrics)
|
21
|
-
# print the test step information
|
22
|
-
Report.print_test_step_header(test_file_name, test_step_idx,
|
23
|
-
step_attributes[:testdesc])
|
24
|
-
runtest = step_attributes[:skipTestCase]
|
25
|
-
step_function = step_attributes[:testFunction]
|
26
|
-
handler = handlers[step_function.to_s]
|
27
|
-
|
28
|
-
if handler.respond_to?(:perform)
|
29
|
-
func = handler.perform(step_attributes) if runtest == false
|
30
|
-
Report.test_pass_fail(func, test_file_name, test_step_idx, metrics)
|
31
|
-
Report.check_failure_threshold(test_file_name)
|
32
|
-
return true
|
33
|
-
else
|
34
|
-
MyLog.log.warn "\nUnable to match function: #{step_function}"
|
35
|
-
raise UnknownTestStep, "Unknown test step: #{step_function}"
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|