cyrun 0.1.3 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/exe/cyrun +2 -1
- data/lib/cyrun/runner.rb +20 -10
- data/lib/cyrun/spec_group_execution_result.rb +4 -0
- data/lib/cyrun/version.rb +1 -1
- data/sig/runner.rbs +7 -3
- data/sig/spec_group_execution_result.rbs +3 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 22f061f7542fcae4b9a2dedd25e8a587609a1b92d3b7ca27e2a52877184908e7
|
4
|
+
data.tar.gz: 4121f67c20e6f5ecb7af1963b6968362d5fa1316cb84ecd1d3904dc605711318
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ea6474ebbb7bc53454f106c1c129321e6fcce19878c9ed57ed339a51a0275850a796ab8ab5321cacf64f9681842fb4bf7f259ad9b6259abc23065e3cfd42576
|
7
|
+
data.tar.gz: d8cdec67384115be7599ae31f52bccb12d9f6803486eba1f7dbd723df274e31f8b5342f7666ce6f662eea60a8d023b4c4f775a4f549ce0ded3194c76b41052f0
|
data/exe/cyrun
CHANGED
@@ -68,10 +68,11 @@ runner = Cyrun::Runner.new(
|
|
68
68
|
base_directory,
|
69
69
|
pattern,
|
70
70
|
screenshots_pattern,
|
71
|
+
screenshots_directory,
|
71
72
|
group_size,
|
72
73
|
npm_task_name,
|
73
74
|
max_retries: max_retries,
|
74
75
|
iterations: iterations
|
75
76
|
)
|
76
77
|
runner.run
|
77
|
-
runner.store_results(results_directory
|
78
|
+
runner.store_results(results_directory)
|
data/lib/cyrun/runner.rb
CHANGED
@@ -7,9 +7,9 @@ module Cyrun
|
|
7
7
|
include Logging
|
8
8
|
|
9
9
|
attr_reader :collector, :group_builder, :task_runner,
|
10
|
-
:overall_results, :max_retries, :iterations
|
10
|
+
:overall_results, :max_retries, :iterations, :screenshots_directory
|
11
11
|
|
12
|
-
def initialize(base_directory, pattern, screenshots_pattern, group_size, npm_task_name, max_retries: nil, iterations: nil)
|
12
|
+
def initialize(base_directory, pattern, screenshots_pattern, screenshots_directory, group_size, npm_task_name, max_retries: nil, iterations: nil)
|
13
13
|
@collector = SpecCollector.new(base_directory, npm_task_name, [pattern])
|
14
14
|
@group_builder = GroupBuilder.new(group_size)
|
15
15
|
@task_runner = TaskRunner.new(screenshots_pattern)
|
@@ -17,6 +17,7 @@ module Cyrun
|
|
17
17
|
@overall_results = SpecGroupExecutionResult.create_empty
|
18
18
|
@max_retries = max_retries
|
19
19
|
@iterations = iterations
|
20
|
+
@screenshots_directory = screenshots_directory
|
20
21
|
end
|
21
22
|
|
22
23
|
def run
|
@@ -26,13 +27,12 @@ module Cyrun
|
|
26
27
|
overall_results
|
27
28
|
end
|
28
29
|
|
29
|
-
def store_results(results_directory
|
30
|
+
def store_results(results_directory)
|
30
31
|
latest_results = overall_results.latest_results
|
31
32
|
invalid_results = latest_results.select { |result| result.result_filename.nil? }
|
32
33
|
valid_results = latest_results - invalid_results
|
33
34
|
|
34
35
|
copy_result_files valid_results, results_directory
|
35
|
-
copy_screenshots overall_results, screenshots_directory
|
36
36
|
|
37
37
|
invalid_results.empty?
|
38
38
|
end
|
@@ -55,22 +55,31 @@ module Cyrun
|
|
55
55
|
success
|
56
56
|
end
|
57
57
|
|
58
|
-
def
|
58
|
+
def move_screenshots(results, directory)
|
59
59
|
FileUtils.mkdir_p directory
|
60
60
|
|
61
61
|
success = true
|
62
62
|
|
63
|
-
info "
|
63
|
+
info "Moving #{results.screenshots.size} screenshots to #{directory}"
|
64
64
|
results.screenshots.each do |path|
|
65
|
-
|
66
|
-
rescue StandardError => e
|
67
|
-
error "Failed to copy screenshot #{path}: #{e.message}"
|
68
|
-
success = false
|
65
|
+
success &&= move_screenshot path, directory
|
69
66
|
end
|
70
67
|
|
71
68
|
success
|
72
69
|
end
|
73
70
|
|
71
|
+
def move_screenshot(path, directory)
|
72
|
+
target_path = "#{directory}/#{SecureRandom.uuid}-#{File.basename(path)}"
|
73
|
+
info " -> Moving #{path} to #{target_path}"
|
74
|
+
FileUtils.mv(path, target_path)
|
75
|
+
|
76
|
+
true
|
77
|
+
rescue StandardError => e
|
78
|
+
error "Failed to move screenshot #{path}: #{e.message}"
|
79
|
+
|
80
|
+
false
|
81
|
+
end
|
82
|
+
|
74
83
|
def collect_specs
|
75
84
|
info 'Collecting specs ...'
|
76
85
|
collector.files.each do |filename|
|
@@ -97,6 +106,7 @@ module Cyrun
|
|
97
106
|
.each(&method(:handle_single_execution_result))
|
98
107
|
|
99
108
|
log_results overall_results
|
109
|
+
move_screenshots results, screenshots_directory
|
100
110
|
end
|
101
111
|
|
102
112
|
def handle_single_execution_result(result)
|
data/lib/cyrun/version.rb
CHANGED
data/sig/runner.rbs
CHANGED
@@ -6,12 +6,13 @@ module Cyrun
|
|
6
6
|
attr_reader iterations: Integer?
|
7
7
|
attr_reader max_retries: Integer?
|
8
8
|
attr_reader npm_task_name: String
|
9
|
+
attr_reader screenshots_directory: String
|
9
10
|
attr_reader overall_results: SpecGroupExecutionResult
|
10
11
|
attr_reader task_runner: TaskRunner
|
11
12
|
|
12
|
-
def initialize: (String, String, String, Integer, String, max_retries: Integer?, iterations: Integer?) -> void
|
13
|
+
def initialize: (String, String, String, String, Integer, String, max_retries: Integer?, iterations: Integer?) -> void
|
13
14
|
|
14
|
-
def store_results: (String
|
15
|
+
def store_results: (String)-> bool
|
15
16
|
|
16
17
|
def run: -> SpecGroupExecutionResult
|
17
18
|
|
@@ -20,7 +21,10 @@ module Cyrun
|
|
20
21
|
def collect_specs: (String) -> void
|
21
22
|
|
22
23
|
def copy_result_files: (Array[SingleSpecExecutionResult], String) -> bool
|
23
|
-
|
24
|
+
|
25
|
+
def move_screenshot: (String, String)-> bool
|
26
|
+
|
27
|
+
def move_screenshots: (SpecGroupExecutionResult, String) -> bool
|
24
28
|
|
25
29
|
def handle_single_execution_result: (SingleSpecExecutionResult) -> void
|
26
30
|
def log_results: (SpecGroupExecutionResult) -> void
|
@@ -7,6 +7,9 @@ module Cyrun
|
|
7
7
|
attr_reader single_results: Array[SingleSpecExecutionResult]
|
8
8
|
|
9
9
|
def initialize: (Array[SingleSpecExecutionResult], Array[String], Integer) -> void
|
10
|
+
|
11
|
+
def clear_screenshot_list!: -> void
|
12
|
+
|
10
13
|
def effectiveness: -> Float
|
11
14
|
def merge!: (SpecGroupExecutionResult)-> void
|
12
15
|
def net_time_in_seconds: -> Integer
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cyrun
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oskar Kirmis
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-04-
|
11
|
+
date: 2023-04-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colorize
|