flaky_stats 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.gitignore +2 -0
- data/lib/flaky_stats/summary.rb +33 -6
- data/lib/flaky_stats/version.rb +1 -1
- data/lib/tasks/flaky_stats.rake +7 -2
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 232a3564758ad1dfd02b9d00736784b72431d3b7f21380cad24258887cade075
|
4
|
+
data.tar.gz: 9ffc6f028ee1a9a7a6e80d9e236379de8225b0bf79aa36b834bd6819b083d5f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 68a51837ef9aa6b3ffdfa3bd12191334c2ac37eaf69d00cf66b353b245aa8ac17a6c1522a5914eb7d6994bcc6e21a528bd4fec57d4fcd127abcfa66ee3a9b927
|
7
|
+
data.tar.gz: 6178f95ce5bdc3d7fd23107526cb05586691282aa58464a58036daa5c652576d9f0d768e909cd974e4539571066b2cccbce71bb55ef9405e35d22ccc129d2547
|
data/.gitignore
CHANGED
data/lib/flaky_stats/summary.rb
CHANGED
@@ -12,7 +12,9 @@ module FlakyStats
|
|
12
12
|
|
13
13
|
def initialize(options)
|
14
14
|
@failing_log = options[:failing_log]
|
15
|
-
@
|
15
|
+
@flaky_tests_log = options[:flaky_tests_log]
|
16
|
+
@failed_files = options[:failed_files] || []
|
17
|
+
@real_flaky_tests = options[:real_flaky_tests] || []
|
16
18
|
end
|
17
19
|
|
18
20
|
def display_error_summary()
|
@@ -22,7 +24,7 @@ module FlakyStats
|
|
22
24
|
|
23
25
|
def calc_flaky_summary
|
24
26
|
sum=Hash.new(0)
|
25
|
-
CSV.foreach(@
|
27
|
+
CSV.foreach(@flaky_tests_log) do |row|
|
26
28
|
sum[row[1]]+=row[3].to_i
|
27
29
|
end
|
28
30
|
return order_stats(sum)
|
@@ -36,8 +38,33 @@ module FlakyStats
|
|
36
38
|
puts "\n"
|
37
39
|
end
|
38
40
|
|
41
|
+
def display_current_flakies
|
42
|
+
heading "Flakies which passed in a single thread"
|
43
|
+
|
44
|
+
@real_flaky_tests.each do |flaky|
|
45
|
+
puts "#{flaky.split(",")[1]}:#{flaky.split(",")[2]}"
|
46
|
+
end
|
47
|
+
puts "\n"
|
48
|
+
end
|
49
|
+
|
50
|
+
# failed_files=[{:filename=>"./spec/integration/divisions/edit_divisions_spec.rb", :lineno=>26},...]
|
51
|
+
# real_flaky_tests = ["2019-10-24 15:30:45 +1100,./spec/integration/reports/activity_statement_spec.rb,13,1",...]
|
52
|
+
def filter_error_files(failed_files, real_flaky_tests)
|
53
|
+
real_flaky_tests.each do |flaky|
|
54
|
+
failed_files.reject!{|error| error[:filename] == flaky.split(",")[1]}
|
55
|
+
end
|
56
|
+
return failed_files
|
57
|
+
end
|
58
|
+
|
59
|
+
def display_failed_tests
|
60
|
+
heading "Failed tests"
|
61
|
+
real_errors = filter_error_files(@failed_files, @real_flaky_tests)
|
62
|
+
real_errors.each { |file| puts "#{file[:filename]}:#{file[:lineno]}"}
|
63
|
+
puts "\n"
|
64
|
+
end
|
65
|
+
|
39
66
|
def rollover(days = DEFAULT_ROLLOVER_DAYS)
|
40
|
-
lines = File.readlines(@
|
67
|
+
lines = File.readlines(@flaky_tests_log)
|
41
68
|
lines.reject{|line|
|
42
69
|
flaky_date = Time.parse(line.split(",")[0]).to_date
|
43
70
|
cutoff = Date.today - days
|
@@ -47,7 +74,7 @@ module FlakyStats
|
|
47
74
|
|
48
75
|
def rollover_and_write(options = {})
|
49
76
|
days = options[:days] || DEFAULT_ROLLOVER_DAYS
|
50
|
-
output = options[:output] || "#{@
|
77
|
+
output = options[:output] || "#{@flaky_tests_log}.tmp"
|
51
78
|
|
52
79
|
File.open(output, "w") {|file|
|
53
80
|
rollover(days).each do |flaky|
|
@@ -56,8 +83,8 @@ module FlakyStats
|
|
56
83
|
}
|
57
84
|
|
58
85
|
# Overwrite log file.
|
59
|
-
`cp #{@
|
60
|
-
`cp #{@
|
86
|
+
`cp #{@flaky_tests_log} #{@flaky_tests_log}.old`
|
87
|
+
`cp #{@flaky_tests_log}.tmp #{@flaky_tests_log}`
|
61
88
|
end
|
62
89
|
|
63
90
|
def reject_low_flaky_tests(data)
|
data/lib/flaky_stats/version.rb
CHANGED
data/lib/tasks/flaky_stats.rake
CHANGED
@@ -12,7 +12,7 @@ task :flaky_stats => :environment do |t|
|
|
12
12
|
logfile = FlakyStats::LogFile.new(failing_log: FAILING_LOG, logfile: LOGFILE)
|
13
13
|
failed_files = logfile.read_failing_log()
|
14
14
|
|
15
|
-
# Run tests singularly
|
15
|
+
# Run tests singularly.
|
16
16
|
flaky_tests = FlakyStats::FlakyTests.new(logfile: LOGFILE)
|
17
17
|
real_flaky_tests = flaky_tests.run(failed_files)
|
18
18
|
|
@@ -20,9 +20,14 @@ task :flaky_stats => :environment do |t|
|
|
20
20
|
logfile.write_flaky_stats(real_flaky_tests)
|
21
21
|
|
22
22
|
# Display summaries
|
23
|
-
summary = FlakyStats::Summary.new(failing_log: FAILING_LOG,
|
23
|
+
summary = FlakyStats::Summary.new(failing_log: FAILING_LOG,
|
24
|
+
flaky_tests_log: LOGFILE,
|
25
|
+
failed_files: failed_files,
|
26
|
+
real_flaky_tests: real_flaky_tests)
|
24
27
|
summary.display_error_summary()
|
25
28
|
summary.display_flaky_summary()
|
29
|
+
summary.display_current_flakies()
|
30
|
+
summary.display_failed_tests()
|
26
31
|
|
27
32
|
# Rollover logfile
|
28
33
|
summary.rollover_and_write()
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flaky_stats
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Pope
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-10-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -124,8 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: '0'
|
126
126
|
requirements: []
|
127
|
-
|
128
|
-
rubygems_version: 2.6.14.1
|
127
|
+
rubygems_version: 3.0.3
|
129
128
|
signing_key:
|
130
129
|
specification_version: 4
|
131
130
|
summary: Records flaky tests
|