taf 0.3.7 → 0.3.8
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.
- 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
|