Class: Actir::ParallelTests::Test::Rerunner

Inherits:
Runner
  • Object
show all
Defined in:
lib/actir/parallel_tests/test/rerunner.rb

Constant Summary

Constants inherited from Runner

Actir::ParallelTests::Test::Runner::NAME

Class Method Summary collapse

Methods inherited from Runner

execute_command, execute_command_and_capture_output, find_results, line_is_result?, name, run_tests, summarize_results, test_env_number, test_file_name, test_suffix, tests_in_groups

Class Method Details

.re_run_tests(test_result, process_number, num_processes, options, address, times) ⇒ String

重新执行失败的测试用例

用例执行通过或者达到了重试次数上限后即返回最终的执行结果

限制:不管是否在同一文件中,用例名称不能重复,即用例名称全局唯一

process_number : [Fixnum] 暂时无用

Examples:

: re_run_tests(‘店铺名称’)

Parameters:

  • test_result

    : [String] 商品名称的字符串

    num_processes : [Fixnum] 并发进程数

    address : [String] 执行用例的环境的地址

    times : [Fixnum] 执行次数

Returns:

  • (String)

    执行结果字符串



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/actir/parallel_tests/test/rerunner.rb', line 29

def re_run_tests(test_result, process_number, num_processes, options, address, times)
  @result = load_result
  #根据重跑次数重新执行失败用例
  result = re_run(test_result, process_number, num_processes, options, address, times)
  #从老的执行结果输出中提取出相关数据
  old_result = summarize_results(find_results(test_result[:stdout]))
  #puts "old_result : " + old_result
  #从新的执行结果中提取出数据,并算出总数
  #因为若有多个失败用例就有多个执行结果
  new_result = summarize_results(find_results(result[:stdout]))
  #puts "new_result : " + new_result
  #刷新最终的执行结果
  if old_result == nil || old_result == ""
    puts "[Debug] test_result : "
    puts test_result
  end
  if new_result == nil || new_result == ""
    puts "[Debug] result : "
    puts result
  end
  combine_tests_results(old_result, new_result)
end