test-prof 0.1.0.pre5 → 0.1.0
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 +4 -4
- data/CHANGELOG.md +7 -0
- data/README.md +16 -4
- data/assets/flamegraph.demo.html +173 -0
- data/assets/flamegraph.template.html +196 -0
- data/assets/src/d3-tip.js +352 -0
- data/assets/src/d3-tip.min.js +1 -0
- data/assets/src/d3.flameGraph.css +92 -0
- data/assets/src/d3.flameGraph.js +459 -0
- data/assets/src/d3.flameGraph.min.css +1 -0
- data/assets/src/d3.flameGraph.min.js +1 -0
- data/assets/src/d3.v4.min.js +8 -0
- data/guides/any_fixture.md +1 -1
- data/guides/event_prof.md +30 -0
- data/guides/factory_default.md +109 -0
- data/guides/factory_prof.md +85 -0
- data/guides/rubocop.md +48 -0
- data/guides/ruby_prof.md +2 -0
- data/guides/stack_prof.md +5 -1
- data/guides/tag_prof.md +52 -0
- data/guides/tests_sampling.md +24 -0
- data/lib/test_prof.rb +31 -7
- data/lib/test_prof/cops/rspec/aggregate_failures.rb +140 -0
- data/lib/test_prof/event_prof/custom_events.rb +3 -3
- data/lib/test_prof/event_prof/custom_events/factory_create.rb +10 -8
- data/lib/test_prof/event_prof/custom_events/sidekiq_inline.rb +10 -8
- data/lib/test_prof/event_prof/custom_events/sidekiq_jobs.rb +12 -10
- data/lib/test_prof/event_prof/rspec.rb +5 -1
- data/lib/test_prof/factory_default.rb +58 -0
- data/lib/test_prof/factory_default/factory_girl_patch.rb +22 -0
- data/lib/test_prof/factory_doctor.rb +11 -9
- data/lib/test_prof/factory_doctor/rspec.rb +5 -3
- data/lib/test_prof/factory_prof.rb +140 -0
- data/lib/test_prof/factory_prof/factory_girl_patch.rb +12 -0
- data/lib/test_prof/factory_prof/printers/flamegraph.rb +71 -0
- data/lib/test_prof/factory_prof/printers/simple.rb +28 -0
- data/lib/test_prof/recipes/minitest/sample.rb +29 -0
- data/lib/test_prof/recipes/rspec/factory_default.rb +9 -0
- data/lib/test_prof/recipes/rspec/sample.rb +13 -0
- data/lib/test_prof/rspec_stamp/rspec.rb +5 -1
- data/lib/test_prof/rubocop.rb +3 -0
- data/lib/test_prof/ruby_prof.rb +6 -12
- data/lib/test_prof/stack_prof.rb +14 -7
- data/lib/test_prof/tag_prof.rb +8 -0
- data/lib/test_prof/tag_prof/rspec.rb +84 -0
- data/lib/test_prof/version.rb +1 -1
- metadata +48 -41
- data/.gitignore +0 -10
- data/.rspec +0 -2
- data/.rubocop.yml +0 -69
- data/.travis.yml +0 -5
- data/Gemfile +0 -4
- data/Rakefile +0 -8
- data/bin/setup +0 -8
- data/circle.yml +0 -11
- data/spec/integrations/any_fixture_spec.rb +0 -11
- data/spec/integrations/before_all_spec.rb +0 -11
- data/spec/integrations/event_prof_spec.rb +0 -100
- data/spec/integrations/factory_doctor_spec.rb +0 -20
- data/spec/integrations/fixtures/rspec/any_fixture_fixture.rb +0 -37
- data/spec/integrations/fixtures/rspec/before_all_fixture.rb +0 -32
- data/spec/integrations/fixtures/rspec/event_prof_factory_create_fixture.rb +0 -23
- data/spec/integrations/fixtures/rspec/event_prof_fixture.rb +0 -51
- data/spec/integrations/fixtures/rspec/event_prof_sidekiq_fixture.rb +0 -53
- data/spec/integrations/fixtures/rspec/factory_doctor_fixture.rb +0 -33
- data/spec/integrations/fixtures/rspec/rspec_stamp_fixture_tmpl.rb +0 -33
- data/spec/integrations/rspec_stamp_spec.rb +0 -53
- data/spec/spec_helper.rb +0 -38
- data/spec/support/ar_models.rb +0 -43
- data/spec/support/instrumenter_stub.rb +0 -19
- data/spec/support/integration_helpers.rb +0 -13
- data/spec/support/transactional_context.rb +0 -11
- data/spec/test_prof/any_fixture_spec.rb +0 -66
- data/spec/test_prof/event_prof_spec.rb +0 -138
- data/spec/test_prof/ext/float_duration_spec.rb +0 -12
- data/spec/test_prof/factory_doctor_spec.rb +0 -84
- data/spec/test_prof/rspec_stamp/parser_spec.rb +0 -58
- data/spec/test_prof/rspec_stamp_spec.rb +0 -281
- data/spec/test_prof/ruby_prof_spec.rb +0 -109
- data/spec/test_prof/stack_prof_spec.rb +0 -73
- data/spec/test_prof_spec.rb +0 -23
- data/test-prof.gemspec +0 -35
@@ -0,0 +1,71 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "json"
|
4
|
+
|
5
|
+
module TestProf::FactoryProf
|
6
|
+
module Printers
|
7
|
+
module Flamegraph # :nodoc: all
|
8
|
+
class << self
|
9
|
+
include TestProf::Logging
|
10
|
+
|
11
|
+
def dump(result)
|
12
|
+
report_data = {
|
13
|
+
total_stacks: result.stacks.size,
|
14
|
+
total: result.total
|
15
|
+
}
|
16
|
+
|
17
|
+
report_data[:roots] = convert_stacks(result)
|
18
|
+
|
19
|
+
path = generate_html(report_data)
|
20
|
+
|
21
|
+
log :info, "FactoryFlame report generated: #{path}"
|
22
|
+
end
|
23
|
+
|
24
|
+
def convert_stacks(result)
|
25
|
+
res = []
|
26
|
+
|
27
|
+
paths = {}
|
28
|
+
|
29
|
+
result.stacks.each do |stack|
|
30
|
+
parent = nil
|
31
|
+
path = ""
|
32
|
+
|
33
|
+
stack.each do |sample|
|
34
|
+
path = "#{path}/#{sample}"
|
35
|
+
|
36
|
+
if paths[path]
|
37
|
+
node = paths[path]
|
38
|
+
node[:value] += 1
|
39
|
+
else
|
40
|
+
node = { name: sample, value: 1, total: result.raw_stats.fetch(sample)[:total] }
|
41
|
+
paths[path] = node
|
42
|
+
|
43
|
+
if parent.nil?
|
44
|
+
res << node
|
45
|
+
else
|
46
|
+
parent[:children] ||= []
|
47
|
+
parent[:children] << node
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
parent = node
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
res
|
56
|
+
end
|
57
|
+
|
58
|
+
private
|
59
|
+
|
60
|
+
def generate_html(data)
|
61
|
+
template = File.read(TestProf.asset_path("flamegraph.template.html"))
|
62
|
+
template.sub! '/**REPORT-DATA**/', data.to_json
|
63
|
+
|
64
|
+
outpath = TestProf.artefact_path("factory-flame.html")
|
65
|
+
File.write(outpath, template)
|
66
|
+
outpath
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module TestProf::FactoryProf
|
4
|
+
module Printers
|
5
|
+
module Simple # :nodoc: all
|
6
|
+
class << self
|
7
|
+
include TestProf::Logging
|
8
|
+
|
9
|
+
def dump(result)
|
10
|
+
msgs = []
|
11
|
+
|
12
|
+
msgs <<
|
13
|
+
<<~MSG
|
14
|
+
Factories usage
|
15
|
+
|
16
|
+
total top-level name
|
17
|
+
MSG
|
18
|
+
|
19
|
+
result.stats.each do |stat|
|
20
|
+
msgs << format("%6d %11d %30s", stat[:total], stat[:top_level], stat[:name])
|
21
|
+
end
|
22
|
+
|
23
|
+
log :info, msgs.join("\n")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module TestProf
|
4
|
+
# Add ability to run only a specified number of example groups (randomly selected)
|
5
|
+
module MinitestSample
|
6
|
+
# Do not add these classes to resulted sample
|
7
|
+
CORE_RUNNABLES = [
|
8
|
+
Minitest::Test,
|
9
|
+
Minitest::Unit::TestCase,
|
10
|
+
Minitest::Spec
|
11
|
+
].freeze
|
12
|
+
|
13
|
+
def run(*)
|
14
|
+
unless ENV['SAMPLE'].nil?
|
15
|
+
sample_size = ENV['SAMPLE'].to_i
|
16
|
+
# Make sure that sample contains only _real_ suites
|
17
|
+
runnables = Minitest::Runnable.runnables
|
18
|
+
.sample(sample_size + CORE_RUNNABLES.size)
|
19
|
+
.reject { |suite| CORE_RUNNABLES.include?(suite) }
|
20
|
+
.take(sample_size)
|
21
|
+
Minitest::Runnable.reset
|
22
|
+
runnables.each { |r| Minitest::Runnable.runnables << r }
|
23
|
+
end
|
24
|
+
super
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
Minitest.singleton_class.prepend(TestProf::MinitestSample)
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module TestProf
|
4
|
+
# Add ability to run only a specified number of example groups (randomly selected)
|
5
|
+
module RspecSample
|
6
|
+
def ordered_example_groups
|
7
|
+
@example_groups = @example_groups.sample(ENV['SAMPLE'].to_i) unless ENV['SAMPLE'].nil?
|
8
|
+
super
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
RSpec::Core::World.prepend(TestProf::RspecSample)
|
@@ -84,7 +84,11 @@ TestProf.activate('RSTAMP') do
|
|
84
84
|
RSpec.configure do |config|
|
85
85
|
listener = TestProf::RSpecStamp::RSpecListener.new
|
86
86
|
|
87
|
-
config.
|
87
|
+
config.before(:suite) do
|
88
|
+
config.reporter.register_listener(
|
89
|
+
listener, *TestProf::RSpecStamp::RSpecListener::NOTIFICATIONS
|
90
|
+
)
|
91
|
+
end
|
88
92
|
|
89
93
|
config.after(:suite) { listener.stamp! }
|
90
94
|
end
|
data/lib/test_prof/ruby_prof.rb
CHANGED
@@ -48,8 +48,8 @@ module TestProf
|
|
48
48
|
:include_threads, :eliminate_methods
|
49
49
|
|
50
50
|
def initialize
|
51
|
-
@printer = :call_stack
|
52
|
-
@mode = :wall
|
51
|
+
@printer = ENV.fetch('TEST_RUBY_PROF_PRINTER', :call_stack).to_sym
|
52
|
+
@mode = ENV.fetch('TEST_RUBY_PROF_MODE', :wall).to_sym
|
53
53
|
@min_percent = 1
|
54
54
|
@include_threads = false
|
55
55
|
@eliminate_methods = ELIMINATE_METHODS
|
@@ -65,13 +65,10 @@ module TestProf
|
|
65
65
|
end
|
66
66
|
|
67
67
|
# Returns an array of printer type (ID) and class.
|
68
|
-
# Takes ENV variable TEST_RUBY_PROF_PRINTER into account.
|
69
68
|
def resolve_printer
|
70
|
-
|
69
|
+
return ['custom', printer] if printer.is_a?(Module)
|
71
70
|
|
72
|
-
|
73
|
-
|
74
|
-
type = type.to_s
|
71
|
+
type = printer.to_s
|
75
72
|
|
76
73
|
raise ArgumentError, "Unknown printer: #{type}" unless
|
77
74
|
PRINTERS.key?(type)
|
@@ -110,11 +107,8 @@ module TestProf
|
|
110
107
|
private
|
111
108
|
|
112
109
|
def build_path(name, printer)
|
113
|
-
TestProf.
|
114
|
-
|
115
|
-
TestProf.config.output_dir,
|
116
|
-
"ruby-prof-report-#{printer}-#{config.mode}-#{name}.html"
|
117
|
-
)
|
110
|
+
TestProf.artefact_path(
|
111
|
+
"ruby-prof-report-#{printer}-#{config.mode}-#{name}.html"
|
118
112
|
)
|
119
113
|
end
|
120
114
|
|
data/lib/test_prof/stack_prof.rb
CHANGED
@@ -25,8 +25,8 @@ module TestProf
|
|
25
25
|
attr_accessor :mode, :interval, :raw
|
26
26
|
|
27
27
|
def initialize
|
28
|
-
@mode = :wall
|
29
|
-
@raw =
|
28
|
+
@mode = ENV.fetch('TEST_STACK_PROF_MODE', :wall).to_sym
|
29
|
+
@raw = ENV['TEST_STACK_PROF_RAW'] == '1'
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
@@ -83,16 +83,23 @@ module TestProf
|
|
83
83
|
::StackProf.results(path)
|
84
84
|
|
85
85
|
log :info, "StackProf report generated: #{path}"
|
86
|
+
|
87
|
+
return unless config.raw
|
88
|
+
|
89
|
+
html_path = path.gsub(/\.dump$/, '.html')
|
90
|
+
|
91
|
+
log :info, <<~MSG
|
92
|
+
Run the following command to generate a flame graph report:
|
93
|
+
|
94
|
+
stackprof --flamegraph #{path} > #{html_path} && stackprof --flamegraph-viewer=#{html_path}
|
95
|
+
MSG
|
86
96
|
end
|
87
97
|
|
88
98
|
private
|
89
99
|
|
90
100
|
def build_path(name)
|
91
|
-
TestProf.
|
92
|
-
|
93
|
-
TestProf.config.output_dir,
|
94
|
-
"stack-prof-report-#{config.mode}-#{name}.dump"
|
95
|
-
)
|
101
|
+
TestProf.artefact_path(
|
102
|
+
"stack-prof-report-#{config.mode}#{config.raw ? '-raw' : ''}-#{name}.dump"
|
96
103
|
)
|
97
104
|
end
|
98
105
|
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "test_prof/ext/float_duration"
|
4
|
+
|
5
|
+
module TestProf
|
6
|
+
module TagProf
|
7
|
+
class RSpecListener # :nodoc:
|
8
|
+
include Logging
|
9
|
+
using FloatDuration
|
10
|
+
|
11
|
+
NOTIFICATIONS = %i[
|
12
|
+
example_started
|
13
|
+
example_finished
|
14
|
+
].freeze
|
15
|
+
|
16
|
+
def initialize
|
17
|
+
@tag = ENV['TAG_PROF'].to_sym
|
18
|
+
@tags = Hash.new { |h, k| h[k] = { val: k, count: 0, time: 0.0 } }
|
19
|
+
|
20
|
+
log :info, "TagProf enabled (#{@tag})"
|
21
|
+
end
|
22
|
+
|
23
|
+
def example_started(_notification)
|
24
|
+
@ts = Time.now
|
25
|
+
end
|
26
|
+
|
27
|
+
def example_finished(notification)
|
28
|
+
return if notification.example.pending?
|
29
|
+
|
30
|
+
tag = notification.example.metadata.fetch(@tag, :__unknown__)
|
31
|
+
|
32
|
+
@tags[tag][:count] += 1
|
33
|
+
@tags[tag][:time] += (Time.now - @ts)
|
34
|
+
end
|
35
|
+
|
36
|
+
def print
|
37
|
+
msgs = []
|
38
|
+
|
39
|
+
msgs <<
|
40
|
+
<<~MSG
|
41
|
+
TagProf report for #{@tag}
|
42
|
+
MSG
|
43
|
+
|
44
|
+
msgs << format(
|
45
|
+
"%15s %12s %6s %6s %6s %12s",
|
46
|
+
@tag,
|
47
|
+
'time', 'total', '%total', '%time', 'avg'
|
48
|
+
)
|
49
|
+
|
50
|
+
msgs << ""
|
51
|
+
|
52
|
+
total = @tags.values.inject(0) { |acc, v| acc + v[:count] }
|
53
|
+
total_time = @tags.values.inject(0) { |acc, v| acc + v[:time] }
|
54
|
+
|
55
|
+
@tags.values.sort_by { |v| -v[:time] }.each do |tag|
|
56
|
+
msgs << format(
|
57
|
+
"%15s %12s %6d %6.2f %6.2f %12s",
|
58
|
+
tag[:val], tag[:time].duration, tag[:count],
|
59
|
+
100 * tag[:count].to_f / total,
|
60
|
+
100 * tag[:time] / total_time,
|
61
|
+
(tag[:time] / tag[:count]).duration
|
62
|
+
)
|
63
|
+
end
|
64
|
+
|
65
|
+
log :info, msgs.join("\n")
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
# Register TagProf listener
|
72
|
+
TestProf.activate('TAG_PROF') do
|
73
|
+
RSpec.configure do |config|
|
74
|
+
listener = TestProf::TagProf::RSpecListener.new
|
75
|
+
|
76
|
+
config.before(:suite) do
|
77
|
+
config.reporter.register_listener(
|
78
|
+
listener, *TestProf::TagProf::RSpecListener::NOTIFICATIONS
|
79
|
+
)
|
80
|
+
end
|
81
|
+
|
82
|
+
config.after(:suite) { listener.print }
|
83
|
+
end
|
84
|
+
end
|
data/lib/test_prof/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: test-prof
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vladimir Dementyev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-08-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.5'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: minitest
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '5.9'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '5.9'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: activerecord
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -146,26 +160,34 @@ executables: []
|
|
146
160
|
extensions: []
|
147
161
|
extra_rdoc_files: []
|
148
162
|
files:
|
149
|
-
-
|
150
|
-
- ".rspec"
|
151
|
-
- ".rubocop.yml"
|
152
|
-
- ".travis.yml"
|
153
|
-
- Gemfile
|
163
|
+
- CHANGELOG.md
|
154
164
|
- LICENSE.txt
|
155
165
|
- README.md
|
156
|
-
-
|
157
|
-
-
|
158
|
-
-
|
166
|
+
- assets/flamegraph.demo.html
|
167
|
+
- assets/flamegraph.template.html
|
168
|
+
- assets/src/d3-tip.js
|
169
|
+
- assets/src/d3-tip.min.js
|
170
|
+
- assets/src/d3.flameGraph.css
|
171
|
+
- assets/src/d3.flameGraph.js
|
172
|
+
- assets/src/d3.flameGraph.min.css
|
173
|
+
- assets/src/d3.flameGraph.min.js
|
174
|
+
- assets/src/d3.v4.min.js
|
159
175
|
- guides/any_fixture.md
|
160
176
|
- guides/before_all.md
|
161
177
|
- guides/event_prof.md
|
178
|
+
- guides/factory_default.md
|
162
179
|
- guides/factory_doctor.md
|
180
|
+
- guides/factory_prof.md
|
163
181
|
- guides/rspec_stamp.md
|
182
|
+
- guides/rubocop.md
|
164
183
|
- guides/ruby_prof.md
|
165
184
|
- guides/stack_prof.md
|
185
|
+
- guides/tag_prof.md
|
186
|
+
- guides/tests_sampling.md
|
166
187
|
- lib/test-prof.rb
|
167
188
|
- lib/test_prof.rb
|
168
189
|
- lib/test_prof/any_fixture.rb
|
190
|
+
- lib/test_prof/cops/rspec/aggregate_failures.rb
|
169
191
|
- lib/test_prof/event_prof.rb
|
170
192
|
- lib/test_prof/event_prof/custom_events.rb
|
171
193
|
- lib/test_prof/event_prof/custom_events/factory_create.rb
|
@@ -175,48 +197,33 @@ files:
|
|
175
197
|
- lib/test_prof/event_prof/minitest.rb
|
176
198
|
- lib/test_prof/event_prof/rspec.rb
|
177
199
|
- lib/test_prof/ext/float_duration.rb
|
200
|
+
- lib/test_prof/factory_default.rb
|
201
|
+
- lib/test_prof/factory_default/factory_girl_patch.rb
|
178
202
|
- lib/test_prof/factory_doctor.rb
|
179
203
|
- lib/test_prof/factory_doctor/factory_girl_patch.rb
|
180
204
|
- lib/test_prof/factory_doctor/minitest.rb
|
181
205
|
- lib/test_prof/factory_doctor/rspec.rb
|
206
|
+
- lib/test_prof/factory_prof.rb
|
207
|
+
- lib/test_prof/factory_prof/factory_girl_patch.rb
|
208
|
+
- lib/test_prof/factory_prof/printers/flamegraph.rb
|
209
|
+
- lib/test_prof/factory_prof/printers/simple.rb
|
182
210
|
- lib/test_prof/logging.rb
|
211
|
+
- lib/test_prof/recipes/minitest/sample.rb
|
183
212
|
- lib/test_prof/recipes/rspec/any_fixture.rb
|
184
213
|
- lib/test_prof/recipes/rspec/before_all.rb
|
214
|
+
- lib/test_prof/recipes/rspec/factory_default.rb
|
215
|
+
- lib/test_prof/recipes/rspec/sample.rb
|
185
216
|
- lib/test_prof/rspec_stamp.rb
|
186
217
|
- lib/test_prof/rspec_stamp/parser.rb
|
187
218
|
- lib/test_prof/rspec_stamp/rspec.rb
|
219
|
+
- lib/test_prof/rubocop.rb
|
188
220
|
- lib/test_prof/ruby_prof.rb
|
189
221
|
- lib/test_prof/ruby_prof/rspec.rb
|
190
222
|
- lib/test_prof/stack_prof.rb
|
191
223
|
- lib/test_prof/stack_prof/rspec.rb
|
224
|
+
- lib/test_prof/tag_prof.rb
|
225
|
+
- lib/test_prof/tag_prof/rspec.rb
|
192
226
|
- lib/test_prof/version.rb
|
193
|
-
- spec/integrations/any_fixture_spec.rb
|
194
|
-
- spec/integrations/before_all_spec.rb
|
195
|
-
- spec/integrations/event_prof_spec.rb
|
196
|
-
- spec/integrations/factory_doctor_spec.rb
|
197
|
-
- spec/integrations/fixtures/rspec/any_fixture_fixture.rb
|
198
|
-
- spec/integrations/fixtures/rspec/before_all_fixture.rb
|
199
|
-
- spec/integrations/fixtures/rspec/event_prof_factory_create_fixture.rb
|
200
|
-
- spec/integrations/fixtures/rspec/event_prof_fixture.rb
|
201
|
-
- spec/integrations/fixtures/rspec/event_prof_sidekiq_fixture.rb
|
202
|
-
- spec/integrations/fixtures/rspec/factory_doctor_fixture.rb
|
203
|
-
- spec/integrations/fixtures/rspec/rspec_stamp_fixture_tmpl.rb
|
204
|
-
- spec/integrations/rspec_stamp_spec.rb
|
205
|
-
- spec/spec_helper.rb
|
206
|
-
- spec/support/ar_models.rb
|
207
|
-
- spec/support/instrumenter_stub.rb
|
208
|
-
- spec/support/integration_helpers.rb
|
209
|
-
- spec/support/transactional_context.rb
|
210
|
-
- spec/test_prof/any_fixture_spec.rb
|
211
|
-
- spec/test_prof/event_prof_spec.rb
|
212
|
-
- spec/test_prof/ext/float_duration_spec.rb
|
213
|
-
- spec/test_prof/factory_doctor_spec.rb
|
214
|
-
- spec/test_prof/rspec_stamp/parser_spec.rb
|
215
|
-
- spec/test_prof/rspec_stamp_spec.rb
|
216
|
-
- spec/test_prof/ruby_prof_spec.rb
|
217
|
-
- spec/test_prof/stack_prof_spec.rb
|
218
|
-
- spec/test_prof_spec.rb
|
219
|
-
- test-prof.gemspec
|
220
227
|
homepage: http://github.com/palkan/test-prof
|
221
228
|
licenses:
|
222
229
|
- MIT
|
@@ -229,15 +236,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
229
236
|
requirements:
|
230
237
|
- - ">="
|
231
238
|
- !ruby/object:Gem::Version
|
232
|
-
version:
|
239
|
+
version: 2.3.0
|
233
240
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
234
241
|
requirements:
|
235
|
-
- - "
|
242
|
+
- - ">="
|
236
243
|
- !ruby/object:Gem::Version
|
237
|
-
version:
|
244
|
+
version: '0'
|
238
245
|
requirements: []
|
239
246
|
rubyforge_project:
|
240
|
-
rubygems_version: 2.6.
|
247
|
+
rubygems_version: 2.6.11
|
241
248
|
signing_key:
|
242
249
|
specification_version: 4
|
243
250
|
summary: Ruby applications tests profiling tools
|