Module: Actir::ParallelTests

Defined in:
lib/actir/parallel_tests/cli.rb,
lib/actir/parallel_tests/grouper.rb,
lib/actir/parallel_tests/test/logger.rb,
lib/actir/parallel_tests/test/result.rb,
lib/actir/parallel_tests/test/runner.rb,
lib/actir/parallel_tests/test/rerunner.rb,
lib/actir/parallel_tests/parallel_tests.rb,
lib/actir/parallel_tests/report/html_reporter.rb,
lib/actir/parallel_tests/report/html_formatter.rb

Defined Under Namespace

Modules: Test Classes: CLI, Grouper, HtmlFormatter, HtmlReport

Class Method Summary collapse

Class Method Details

.deltaObject



68
69
70
71
72
# File 'lib/actir/parallel_tests/parallel_tests.rb', line 68

def delta
  before = now.to_f
  yield
  now.to_f - before
end

.determine_number_of_processes(count) ⇒ Object

判断执行的进程数



14
15
16
17
18
19
20
21
22
23
# File 'lib/actir/parallel_tests/parallel_tests.rb', line 14

def determine_number_of_processes(count)
  [
    count,
    #ENV["PARALLEL_TEST_PROCESSORS"],
    #核数
    #Parallel.processor_count
    #count数不填模式为1
    1
  ].detect{|c| not c.to_s.strip.empty? }.to_i
end

.determine_run_env(mode) ⇒ Object

判断用例执行的环境是local还是remote



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/actir/parallel_tests/parallel_tests.rb', line 35

def determine_run_env(mode)
  env_mode = :local
  #判断是否存在config.yaml配置文件,如果不存在,则test_mode给默认值
  if File.exist?(File.join($project_path, "config", "config.yaml")) 
    #刷新配置文件中的env配置项为remote模式,以防止本地调试代码改写上传后导致CI失败
    if mode
      unless mode == /#{Actir::Config.get("config.test_mode.env")}/
        #同步修改配置文件,需要先将Symbol转换成String
        mode_str = ":" + mode.to_s
        Actir::Config.set("config.test_mode.env", mode_str)
      end
      env_mode = mode
    else
      env_mode = Actir::Config.get("config.test_mode.env")
    end
  else
    if mode
      env_mode = mode
    end
  end
  ENV["mode"] = env_mode.to_s
  env_mode
end

.determine_times_of_rerun(times) ⇒ Object

判断失败用例重新执行的次数



26
27
28
29
30
31
32
# File 'lib/actir/parallel_tests/parallel_tests.rb', line 26

def determine_times_of_rerun(times)
  [
    times,
    0
    #Actir::Config.get("config.test_mode.re_run")
  ].detect{|c| not c.to_s.strip.empty? }.to_i
end

.nowObject

real time even if someone messed with timecop in tests



60
61
62
63
64
65
66
# File 'lib/actir/parallel_tests/parallel_tests.rb', line 60

def now
  if Time.respond_to?(:now_without_mock_time) # Timecop
    Time.now_without_mock_time
  else
    Time.now
  end
end