lib/actir/parallel_tests/test/result.rb in actir-1.4.2 vs lib/actir/parallel_tests/test/result.rb in actir-1.4.3
- old
+ new
@@ -39,29 +39,42 @@
failed_case
end
def record_detail(test_result)
failure_detail_hash = get_testfailed_info(test_result)
- $testsuites.each do |testsuite|
- testcases = testsuite[:testcases]
- testcases.each do |testcase|
- #标识用例是否执行失败
- fail_flag = 0
- failure_detail_hash.each do |testcase_failure, detail|
- if testcase_failure == testcase[:testcase_name]
- testcase[:success] = false
- testcase[:detail] = detail
- fail_flag = 1
- #从hash表中移除
- failure_detail_hash.delete(testcase_failure)
- end
+
+ $testsuites.each do |testsuite|
+ testcases = testsuite[:testcases]
+ testcases.each do |testcase|
+ #标识用例是否执行失败
+ fail_flag = 0
+ failure_detail_hash.each do |testcase_failure, detail|
+ if testcase_failure == testcase[:testcase_name]
+ testcase[:success] = false
+ testcase[:detail] = detail
+ fail_flag = 1
+ #从hash表中移除
+ failure_detail_hash.delete(testcase_failure)
end
- if fail_flag == 0
- testcase[:success] = true
- testcase[:detail] = nil
- end
end
+ if fail_flag == 0
+ testcase[:success] = true
+ testcase[:detail] = nil
+ end
end
+ end
+ # 反向再检查一遍是否有$testsuites种未记录的失败用例
+ miss_failed_case = []
+ if failure_detail_hash.size > 0
+ failure_detail_hash.each do |testcase_failure, detail|
+ testcase = {:testcase_name => testcase_failure, :success => false, :detail => detail}
+ #从hash表中移除
+ failure_detail_hash.delete(testcase_failure)
+ miss_failed_case << testcase
+ end
+ testsuite = {:testsuite_name => "miss_failed_case", :testcases => miss_failed_case}
+ $testsuites << testsuite
+ end
end
def get_run_test_info(test_result)
output = test_result[:stdout]
# output.scan(/^(\[suite start\])([^\.]*)(\[suite end\])$/).each do |suite|