Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions lib/bucky/core/test_core/test_class_generator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,11 @@ def generate_test_class(data: [], linkstatus_url_log: {}, w_pipe: {})
description(
t_case[:case_name],
define_method(method_name) do
# Check if test should be skipped
if t_case[:skip]
skip_reason = t_case[:skip_reason] || "Test skipped"
omit(skip_reason)
end
puts "\n#{simple_test_class_name(name)}"
t_case[:urls].each do |url|
linkstatus_check_args = { url:, device: data[:suite][:device], exclude_urls: data[:suite][:exclude_urls], link_check_max_times: test_cond[:link_check_max_times], url_log: linkstatus_url_log }
Expand Down Expand Up @@ -104,6 +109,11 @@ def teardown
# e.g.) test_sample_app_pc_e2e_1_2
method_name = make_test_method_name(data, t_case, i)
method_obj = proc do
# Check if test should be skipped
if t_case[:skip]
skip_reason = t_case[:skip_reason] || "Test skipped"
omit(skip_reason)
end
puts "\n#{simple_test_class_name(name)}\n #{t_case[:desc]} ...."
add_test_procedure(t_case[:procs])
end
Expand Down
4 changes: 3 additions & 1 deletion lib/bucky/core/test_core/test_manager.rb
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ def initialize(test_cond)
cases_count: 0,
success_count: 0,
failure_count: 0,
skip_count: 0,
job_id: $job_id,
test_category: test_cond[:test_category],
device: test_cond[:device],
Expand Down Expand Up @@ -169,7 +170,8 @@ def execute_test

@json_report[:summary][:cases_count] = all_round_results[0].sum { |_case, res| res['cases_count'] }
@json_report[:summary][:failure_count] = all_round_results[-1].sum { |_case, res| res['failure_count'] }
@json_report[:summary][:success_count] = @json_report[:summary][:cases_count] - @json_report[:summary][:failure_count]
@json_report[:summary][:skip_count] = all_round_results[-1].sum { |_case, res| res['skip_count'] || 0 }
@json_report[:summary][:success_count] = @json_report[:summary][:cases_count] - @json_report[:summary][:failure_count] - @json_report[:summary][:skip_count]

File.open(@test_cond[:out], 'w') do |f|
f.puts(@json_report.to_json)
Expand Down
35 changes: 31 additions & 4 deletions lib/bucky/core/test_core/test_result.rb
Original file line number Diff line number Diff line change
Expand Up @@ -53,14 +53,39 @@ def format_result_summary(added_result_info)
elapsed_time = added_result_info[case_name.to_sym][:elapsed_time],
is_error = 1,
job_id = $job_id,
round = $round
round = $round,
skip_flag = false,
skip_reason = nil
]
end

##############################################
# Store skipped cases in data set. #
##############################################
skip_test_case_name = []
@result.omissions.each do |omission|
case_name = omission.method_name
case_id = @tdo.get_test_case_id(added_result_info[case_name.to_sym][:test_suite_id], added_result_info[case_name.to_sym][:case_name])
skip_test_case_name.push(case_name.to_sym)
data_set[case_name] =
[
id = nil,
test_case_id = case_id,
error_title = "SKIPPED: #{omission.message}",
error_message = omission.location.join("\n"),
elapsed_time = added_result_info[case_name.to_sym][:elapsed_time],
is_error = 1,
job_id = $job_id,
round = $round,
skip_flag = true,
skip_reason = omission.message
]
end

############################################
# Store passed cases in data set. #
############################################
added_result_info.delete_if { |k, _v| error_test_case_name.include?(k) }
added_result_info.delete_if { |k, _v| error_test_case_name.include?(k) || skip_test_case_name.include?(k) }
added_result_info.each do |case_name, added_info|
case_id = @tdo.get_test_case_id(added_info[:test_suite_id], added_info[:case_name])
data_set[case_name] =
Expand All @@ -72,15 +97,17 @@ def format_result_summary(added_result_info)
elapsed_time = added_info[:elapsed_time],
is_error = 0,
job_id = $job_id,
round = $round
round = $round,
skip_flag = false,
skip_reason = nil
]
end

# Data set for sequel
data_set_ary = data_set.map { |_, v| v }

# Table colomn
column_name_ary = %i[id test_case_id error_title error_message elapsed_time is_error job_id round]
column_name_ary = %i[id test_case_id error_title error_message elapsed_time is_error job_id round skip_flag skip_reason]
{
column: column_name_ary,
data_set: data_set_ary
Expand Down
3 changes: 2 additions & 1 deletion lib/bucky/test_equipment/test_case/abst_test_case.rb
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ def run(result)
test_class_name: self.class.name,
cases_count: result.run_count,
success_count: result.pass_count,
failure_count: result.run_count - result.pass_count
failure_count: result.run_count - result.pass_count - result.omission_count,
skip_count: result.omission_count
}.to_json)
end

Expand Down