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.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/README.md +16 -4
  4. data/assets/flamegraph.demo.html +173 -0
  5. data/assets/flamegraph.template.html +196 -0
  6. data/assets/src/d3-tip.js +352 -0
  7. data/assets/src/d3-tip.min.js +1 -0
  8. data/assets/src/d3.flameGraph.css +92 -0
  9. data/assets/src/d3.flameGraph.js +459 -0
  10. data/assets/src/d3.flameGraph.min.css +1 -0
  11. data/assets/src/d3.flameGraph.min.js +1 -0
  12. data/assets/src/d3.v4.min.js +8 -0
  13. data/guides/any_fixture.md +1 -1
  14. data/guides/event_prof.md +30 -0
  15. data/guides/factory_default.md +109 -0
  16. data/guides/factory_prof.md +85 -0
  17. data/guides/rubocop.md +48 -0
  18. data/guides/ruby_prof.md +2 -0
  19. data/guides/stack_prof.md +5 -1
  20. data/guides/tag_prof.md +52 -0
  21. data/guides/tests_sampling.md +24 -0
  22. data/lib/test_prof.rb +31 -7
  23. data/lib/test_prof/cops/rspec/aggregate_failures.rb +140 -0
  24. data/lib/test_prof/event_prof/custom_events.rb +3 -3
  25. data/lib/test_prof/event_prof/custom_events/factory_create.rb +10 -8
  26. data/lib/test_prof/event_prof/custom_events/sidekiq_inline.rb +10 -8
  27. data/lib/test_prof/event_prof/custom_events/sidekiq_jobs.rb +12 -10
  28. data/lib/test_prof/event_prof/rspec.rb +5 -1
  29. data/lib/test_prof/factory_default.rb +58 -0
  30. data/lib/test_prof/factory_default/factory_girl_patch.rb +22 -0
  31. data/lib/test_prof/factory_doctor.rb +11 -9
  32. data/lib/test_prof/factory_doctor/rspec.rb +5 -3
  33. data/lib/test_prof/factory_prof.rb +140 -0
  34. data/lib/test_prof/factory_prof/factory_girl_patch.rb +12 -0
  35. data/lib/test_prof/factory_prof/printers/flamegraph.rb +71 -0
  36. data/lib/test_prof/factory_prof/printers/simple.rb +28 -0
  37. data/lib/test_prof/recipes/minitest/sample.rb +29 -0
  38. data/lib/test_prof/recipes/rspec/factory_default.rb +9 -0
  39. data/lib/test_prof/recipes/rspec/sample.rb +13 -0
  40. data/lib/test_prof/rspec_stamp/rspec.rb +5 -1
  41. data/lib/test_prof/rubocop.rb +3 -0
  42. data/lib/test_prof/ruby_prof.rb +6 -12
  43. data/lib/test_prof/stack_prof.rb +14 -7
  44. data/lib/test_prof/tag_prof.rb +8 -0
  45. data/lib/test_prof/tag_prof/rspec.rb +84 -0
  46. data/lib/test_prof/version.rb +1 -1
  47. metadata +48 -41
  48. data/.gitignore +0 -10
  49. data/.rspec +0 -2
  50. data/.rubocop.yml +0 -69
  51. data/.travis.yml +0 -5
  52. data/Gemfile +0 -4
  53. data/Rakefile +0 -8
  54. data/bin/setup +0 -8
  55. data/circle.yml +0 -11
  56. data/spec/integrations/any_fixture_spec.rb +0 -11
  57. data/spec/integrations/before_all_spec.rb +0 -11
  58. data/spec/integrations/event_prof_spec.rb +0 -100
  59. data/spec/integrations/factory_doctor_spec.rb +0 -20
  60. data/spec/integrations/fixtures/rspec/any_fixture_fixture.rb +0 -37
  61. data/spec/integrations/fixtures/rspec/before_all_fixture.rb +0 -32
  62. data/spec/integrations/fixtures/rspec/event_prof_factory_create_fixture.rb +0 -23
  63. data/spec/integrations/fixtures/rspec/event_prof_fixture.rb +0 -51
  64. data/spec/integrations/fixtures/rspec/event_prof_sidekiq_fixture.rb +0 -53
  65. data/spec/integrations/fixtures/rspec/factory_doctor_fixture.rb +0 -33
  66. data/spec/integrations/fixtures/rspec/rspec_stamp_fixture_tmpl.rb +0 -33
  67. data/spec/integrations/rspec_stamp_spec.rb +0 -53
  68. data/spec/spec_helper.rb +0 -38
  69. data/spec/support/ar_models.rb +0 -43
  70. data/spec/support/instrumenter_stub.rb +0 -19
  71. data/spec/support/integration_helpers.rb +0 -13
  72. data/spec/support/transactional_context.rb +0 -11
  73. data/spec/test_prof/any_fixture_spec.rb +0 -66
  74. data/spec/test_prof/event_prof_spec.rb +0 -138
  75. data/spec/test_prof/ext/float_duration_spec.rb +0 -12
  76. data/spec/test_prof/factory_doctor_spec.rb +0 -84
  77. data/spec/test_prof/rspec_stamp/parser_spec.rb +0 -58
  78. data/spec/test_prof/rspec_stamp_spec.rb +0 -281
  79. data/spec/test_prof/ruby_prof_spec.rb +0 -109
  80. data/spec/test_prof/stack_prof_spec.rb +0 -73
  81. data/spec/test_prof_spec.rb +0 -23
  82. data/test-prof.gemspec +0 -35
@@ -1,73 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "spec_helper"
4
-
5
- describe TestProf::StackProf do
6
- # Use fresh config all for every example
7
- after { described_class.remove_instance_variable(:@config) }
8
-
9
- describe ".config" do
10
- subject { described_class.config }
11
-
12
- specify "defaults", :aggregate_failiures do
13
- expect(subject.mode).to eq :wall
14
- expect(subject.interval).to be_nil
15
- expect(subject.raw).to eq false
16
- end
17
- end
18
-
19
- describe "#profile" do
20
- let(:stack_prof) { double("stack_prof") }
21
-
22
- before do
23
- stub_const("StackProf", stack_prof)
24
- end
25
-
26
- specify "with default config" do
27
- expect(stack_prof).to receive(:start).with(
28
- mode: :wall,
29
- raw: false
30
- )
31
-
32
- described_class.profile
33
- end
34
-
35
- specify "with custom config" do
36
- described_class.config.raw = true
37
- described_class.config.mode = :cpu
38
-
39
- expect(stack_prof).to receive(:start).with(
40
- mode: :cpu,
41
- raw: true
42
- )
43
-
44
- described_class.profile
45
- end
46
-
47
- specify "when block is given" do
48
- expect(stack_prof).to receive(:run).with(
49
- out: "tmp/stack-prof-report-wall-stub.dump",
50
- mode: :wall,
51
- raw: false
52
- )
53
-
54
- described_class.profile("stub") { 0 == 1 }
55
- end
56
- end
57
-
58
- describe "#dump" do
59
- let(:stack_prof) { double("stack_prof") }
60
-
61
- before do
62
- stub_const("StackProf", stack_prof)
63
- end
64
-
65
- it "stops profiling and stores results" do
66
- expect(stack_prof).to receive(:results).with(
67
- "tmp/stack-prof-report-wall-stub.dump"
68
- )
69
- expect(stack_prof).to receive(:stop)
70
- described_class.dump("stub")
71
- end
72
- end
73
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "spec_helper"
4
-
5
- describe TestProf do
6
- describe "#with_timestamps" do
7
- context "when enabled" do
8
- before { described_class.config.timestamps = false }
9
-
10
- it { expect(described_class.with_timestamps("a/b/c.html")).to eq 'a/b/c.html' }
11
- end
12
-
13
- context "when enabled" do
14
- before do
15
- described_class.config.timestamps = true
16
- expect(Time).to receive(:now).and_return(double("now", to_i: 123_454_321))
17
- end
18
-
19
- it { expect(described_class.with_timestamps("a/b/c.html")).to eq 'a/b/c-123454321.html' }
20
- it { expect(described_class.with_timestamps("a/b/c")).to eq 'a/b/c-123454321' }
21
- end
22
- end
23
- end
data/test-prof.gemspec DELETED
@@ -1,35 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'test_prof/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "test-prof"
8
- spec.version = TestProf::VERSION
9
- spec.authors = ["Vladimir Dementyev"]
10
- spec.email = ["dementiev.vm@gmail.com"]
11
-
12
- spec.summary = "Ruby applications tests profiling tools"
13
- spec.description = %{
14
- Ruby applications tests profiling tools.
15
-
16
- Contains tools to anylyze factories usage, integrate with Ruby profilers,
17
- profile your examples using ActiveSupport notifications (if any) and
18
- statically analyze your code with custom Rubocop cops.
19
- }
20
- spec.homepage = "http://github.com/palkan/test-prof"
21
- spec.license = "MIT"
22
-
23
- spec.files = `git ls-files`.split($/)
24
- spec.require_paths = ["lib"]
25
-
26
- spec.add_development_dependency "bundler", "~> 1.10"
27
- spec.add_development_dependency "rake", "~> 10.0"
28
- spec.add_development_dependency "rspec", "~> 3.5"
29
- spec.add_development_dependency "activerecord", "~> 5.0"
30
- spec.add_development_dependency "factory_girl", "~> 4.8.0"
31
- spec.add_development_dependency "rubocop", "~> 0.49"
32
- spec.add_development_dependency "pry-byebug"
33
- spec.add_development_dependency "sqlite3"
34
- spec.add_development_dependency "sidekiq", "~> 4.0"
35
- end