minitest-perf 0.0.3 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 7f12a2b83a233ba3f93ed3eac0699d9bf4fa66fb
4
+ data.tar.gz: b8e157fc2d413f4740789233bfab1896603d5b2a
5
+ SHA512:
6
+ metadata.gz: dedc1ed29bf47ab48aa3463df2c98684576dfa6865e578bb26dafc2ed930293c7ce4a5f18b7bda5508d56e95a1ae9f880e54cbebf15ffe7ff780d5e9a41709e0
7
+ data.tar.gz: 8e26a15093a43c8f638009c72fa5e373f69e911f2ba0cbe1bb62bf995fd94992c12d134b51548512ad7e601f482f5dad18b1cca42471f304ceacbb93a8a23a43
@@ -0,0 +1,8 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.2.0
4
+ - 2.1.0
5
+ - 2.0.0
6
+ - rbx-2
7
+ - ruby-head
8
+ - jruby-head
data/Gemfile CHANGED
@@ -2,3 +2,6 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in minitest-perf.gemspec
4
4
  gemspec
5
+
6
+ gem "coveralls", require: false
7
+ gem "simplecov", require: false
data/README.md CHANGED
@@ -1,11 +1,16 @@
1
1
  # MiniTest::Perf
2
2
 
3
+ [![Build Status](https://travis-ci.org/rom-rb/rom.png?branch=master)][travis]
4
+ [![Code Climate](https://codeclimate.com/github/mrsimo/minitest-perf.png)][codeclimate]
5
+
6
+ [travis]: https://travis-ci.org/mrsimo/minitest-perf
7
+ [codeclimate]: https://codeclimate.com/github/mrsimo/minitest-perf
8
+
3
9
  `minitest-perf` stores information about your minitest runs so that you can later analyze and see where
4
10
  the pain points are. It's in pretty early beta status, so I'm more than glad to receive bug reports and
5
11
  feature suggestions.
6
12
 
7
- For now it should work with later versions of MiniTest 4, since the biggest test suite I have available
8
- is with this version. MiniTest 5 probably doesn't work yet.
13
+ The current version works with Minitest 5 thanks to @nateberkopec, for Minitest 4 use version 0.0.3.
9
14
 
10
15
  ## How it works
11
16
 
@@ -19,7 +24,7 @@ environment variable `MINITEST_PERF_DATABASE_URL`, or the `DATABASE_URL`.
19
24
  Or setting it directly via ruby with:
20
25
 
21
26
  ```ruby
22
- MiniTest::Perf.database_url = 'sqlite3://localhost/some_other_file.db'
27
+ Minitest::Perf.database_url = 'sqlite3://localhost/some_other_file.db'
23
28
  ```
24
29
 
25
30
  So far only local `sqlite3` databases allowed, but I'm using the database url strategy to allow for
@@ -1,7 +1,7 @@
1
1
  require 'minitest/perf/version'
2
- require 'minitest/unit'
2
+ require 'minitest'
3
3
 
4
- module MiniTest::Perf
4
+ module Minitest::Perf
5
5
  autoload :Run, 'minitest/perf/run'
6
6
  autoload :Test, 'minitest/perf/test'
7
7
  autoload :Suite, 'minitest/perf/suite'
@@ -26,6 +26,6 @@ module MiniTest::Perf
26
26
  end
27
27
  end
28
28
 
29
- class MiniTest::Unit::TestCase
30
- include MiniTest::Perf::Plugin
29
+ class Minitest::Test
30
+ include Minitest::Perf::Plugin
31
31
  end
@@ -1,4 +1,4 @@
1
- module MiniTest
1
+ module Minitest
2
2
  module Perf
3
3
  class Cli
4
4
  def run
@@ -1,6 +1,6 @@
1
1
  require 'sqlite3'
2
2
 
3
- module MiniTest
3
+ module Minitest
4
4
  module Perf
5
5
  class Persistence
6
6
  attr_reader :database_url
@@ -1,18 +1,18 @@
1
- module MiniTest
1
+ module Minitest
2
2
  module Perf
3
3
  module Plugin
4
4
  def before_setup
5
- current_perf_run.start(self.class.name, __name__)
5
+ current_perf_run.start(self.class.name, name)
6
6
  super
7
7
  end
8
8
 
9
9
  def after_teardown
10
10
  super
11
- current_perf_run.finish(self.class.name, __name__)
11
+ current_perf_run.finish(self.class.name, name)
12
12
  end
13
13
 
14
14
  def current_perf_run
15
- @@current_perf_run ||= MiniTest::Perf::Run.new
15
+ @@current_perf_run ||= Minitest::Perf::Run.new
16
16
  end
17
17
  end
18
18
  end
@@ -1,4 +1,4 @@
1
- module MiniTest
1
+ module Minitest
2
2
  module Perf
3
3
  class Run
4
4
  attr_reader :tests
@@ -1,9 +1,9 @@
1
- module MiniTest
1
+ module Minitest
2
2
  module Perf
3
3
  module Statistics
4
4
  class << self
5
5
  def slowest_tests
6
- MiniTest::Perf.persistence.sql(<<-SQL)
6
+ Minitest::Perf.persistence.sql(<<-SQL)
7
7
  SELECT suite, name, avg(total) as avg_total
8
8
  FROM tests
9
9
  GROUP BY suite, name
@@ -13,7 +13,7 @@ module MiniTest
13
13
  end
14
14
 
15
15
  def slowest_suites
16
- MiniTest::Perf.persistence.sql(<<-SQL)
16
+ Minitest::Perf.persistence.sql(<<-SQL)
17
17
  SELECT suite, AVG(test_count), AVG(avg_total_per_test_run) as avg_total
18
18
  FROM (
19
19
  SELECT run, suite, COUNT(name) AS test_count, AVG(total) as avg_total_per_test_run
@@ -1,4 +1,4 @@
1
- module MiniTest
1
+ module Minitest
2
2
  module Perf
3
3
  class Test
4
4
  attr_reader :run, :suite, :name, :total
@@ -1,5 +1,5 @@
1
- module MiniTest
1
+ module Minitest
2
2
  module Perf
3
- VERSION = "0.0.3"
3
+ VERSION = "0.1.0"
4
4
  end
5
5
  end
@@ -5,7 +5,7 @@ require 'minitest/perf/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "minitest-perf"
8
- spec.version = MiniTest::Perf::VERSION
8
+ spec.version = Minitest::Perf::VERSION
9
9
  spec.authors = ["Albert Llop"]
10
10
  spec.email = ["mrsimo@gmail.com"]
11
11
  spec.description = %q{Save test run data to find slow tests and other interesting information}
@@ -24,8 +24,7 @@ Gem::Specification.new do |spec|
24
24
 
25
25
  spec.add_development_dependency "bundler", "~> 1.3"
26
26
  spec.add_development_dependency "rake"
27
- spec.add_development_dependency "mocha"
28
- spec.add_development_dependency "debugger"
29
- spec.add_dependency "minitest", "~> 4.0"
27
+ spec.add_development_dependency "mocha", "~> 1.1"
28
+ spec.add_dependency "minitest", "~> 5.0"
30
29
  spec.add_dependency "sqlite3"
31
30
  end
@@ -1,8 +1,8 @@
1
1
  require 'test_helper'
2
2
  require 'sqlite3'
3
3
 
4
- module MiniTest::Perf
5
- class PersistenceTest < MiniTest::Unit::TestCase
4
+ module Minitest::Perf
5
+ class PersistenceTest < Minitest::Test
6
6
  TEST_DB_FILE = '.minitest-perf-tests.db'
7
7
  def setup
8
8
  File.delete(TEST_DB_FILE) rescue Errno::ENOENT # First time won't be here
@@ -1,7 +1,7 @@
1
1
  require 'test_helper'
2
2
 
3
- class PluginTest < MiniTest::Unit::TestCase
3
+ class PluginTest < Minitest::Test
4
4
  def test_minitest_has_the_plugin_included
5
- assert_includes MiniTest::Unit::TestCase.included_modules, MiniTest::Perf::Plugin
5
+ assert_includes Minitest::Test.included_modules, Minitest::Perf::Plugin
6
6
  end
7
7
  end
@@ -1,7 +1,7 @@
1
1
  require 'test_helper'
2
2
 
3
- module MiniTest::Perf
4
- class RunTest < MiniTest::Unit::TestCase
3
+ module Minitest::Perf
4
+ class RunTest < Minitest::Test
5
5
  def test_a_new_run_has_no_tests
6
6
  run = Run.new
7
7
 
@@ -1,7 +1,7 @@
1
1
  require 'test_helper'
2
2
 
3
- module MiniTest::Perf
4
- class TestTest < MiniTest::Unit::TestCase
3
+ module Minitest::Perf
4
+ class TestTest < Minitest::Test
5
5
  def test_creation
6
6
  test = Test.new('run', 'suite', 'name', 10)
7
7
 
@@ -14,7 +14,7 @@ module MiniTest::Perf
14
14
  def test_persists_calls_persistence
15
15
  test = Test.new('run', 'suite', 'name', 10)
16
16
 
17
- MiniTest::Perf.persistence.expects(:write).with(test)
17
+ Minitest::Perf.persistence.expects(:write).with(test)
18
18
 
19
19
  test.persist
20
20
  end
@@ -1,19 +1,19 @@
1
1
  require 'test_helper'
2
2
 
3
- module MiniTest
4
- class PerfTest < MiniTest::Unit::TestCase
3
+ module Minitest
4
+ class PerfTest < Minitest::Test
5
5
  def test_default_database
6
- MiniTest::Perf.database_url = nil
6
+ Minitest::Perf.database_url = nil
7
7
 
8
- assert_equal 'sqlite3://localhost/.minitest-perf.db', MiniTest::Perf.database_url
8
+ assert_equal 'sqlite3://localhost/.minitest-perf.db', Minitest::Perf.database_url
9
9
  end
10
10
 
11
11
  def test_customizable_database
12
- MiniTest::Perf.persistence = nil
13
- MiniTest::Perf.database_url = 'sqlite3://localhost/some_other_file.db'
12
+ Minitest::Perf.persistence = nil
13
+ Minitest::Perf.database_url = 'sqlite3://localhost/some_other_file.db'
14
14
 
15
- assert_equal 'sqlite3://localhost/some_other_file.db', MiniTest::Perf.database_url
16
- assert_equal 'sqlite3://localhost/some_other_file.db', MiniTest::Perf.persistence.database_url
15
+ assert_equal 'sqlite3://localhost/some_other_file.db', Minitest::Perf.database_url
16
+ assert_equal 'sqlite3://localhost/some_other_file.db', Minitest::Perf.persistence.database_url
17
17
  end
18
18
  end
19
19
  end
@@ -2,10 +2,13 @@ require 'rubygems'
2
2
  require 'bundler/setup'
3
3
  require 'minitest/autorun'
4
4
  require 'minitest/pride'
5
- require 'mocha/setup'
6
- require 'debugger'
7
-
8
5
  require 'minitest/perf'
6
+ require 'mocha/mini_test'
7
+ require 'simplecov'
8
+
9
+ SimpleCov.start do
10
+ add_filter "/test/"
11
+ end
9
12
 
10
13
  ##
11
14
  # We disable the real plugin or stuff gets all confusing
@@ -15,7 +18,7 @@ class FakeRun
15
18
  def finish(*pars); end
16
19
  end
17
20
 
18
- MiniTest::Perf::Plugin.class_eval do
21
+ Minitest::Perf::Plugin.class_eval do
19
22
  def current_perf_run
20
23
  @current_perf_run ||= FakeRun.new
21
24
  end
metadata CHANGED
@@ -1,110 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitest-perf
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.0.3
4
+ version: 0.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Albert Llop
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-05-25 00:00:00.000000000 Z
11
+ date: 2015-01-16 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bundler
16
- type: :development
17
15
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
16
  requirements:
20
- - - ~>
17
+ - - "~>"
21
18
  - !ruby/object:Gem::Version
22
19
  version: '1.3'
20
+ type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
26
  version: '1.3'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
32
- type: :development
33
29
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
30
  requirements:
36
- - - ! '>='
31
+ - - ">="
37
32
  - !ruby/object:Gem::Version
38
33
  version: '0'
34
+ type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: mocha
48
- type: :development
49
43
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
44
  requirements:
52
- - - ! '>='
45
+ - - "~>"
53
46
  - !ruby/object:Gem::Version
54
- version: '0'
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- - !ruby/object:Gem::Dependency
63
- name: debugger
47
+ version: '1.1'
64
48
  type: :development
65
- requirement: !ruby/object:Gem::Requirement
66
- none: false
67
- requirements:
68
- - - ! '>='
69
- - !ruby/object:Gem::Version
70
- version: '0'
71
49
  prerelease: false
72
50
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
51
  requirements:
75
- - - ! '>='
52
+ - - "~>"
76
53
  - !ruby/object:Gem::Version
77
- version: '0'
54
+ version: '1.1'
78
55
  - !ruby/object:Gem::Dependency
79
56
  name: minitest
80
- type: :runtime
81
57
  requirement: !ruby/object:Gem::Requirement
82
- none: false
83
58
  requirements:
84
- - - ~>
59
+ - - "~>"
85
60
  - !ruby/object:Gem::Version
86
- version: '4.0'
61
+ version: '5.0'
62
+ type: :runtime
87
63
  prerelease: false
88
64
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
65
  requirements:
91
- - - ~>
66
+ - - "~>"
92
67
  - !ruby/object:Gem::Version
93
- version: '4.0'
68
+ version: '5.0'
94
69
  - !ruby/object:Gem::Dependency
95
70
  name: sqlite3
96
- type: :runtime
97
71
  requirement: !ruby/object:Gem::Requirement
98
- none: false
99
72
  requirements:
100
- - - ! '>='
73
+ - - ">="
101
74
  - !ruby/object:Gem::Version
102
75
  version: '0'
76
+ type: :runtime
103
77
  prerelease: false
104
78
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
79
  requirements:
107
- - - ! '>='
80
+ - - ">="
108
81
  - !ruby/object:Gem::Version
109
82
  version: '0'
110
83
  description: Save test run data to find slow tests and other interesting information
@@ -115,7 +88,8 @@ executables:
115
88
  extensions: []
116
89
  extra_rdoc_files: []
117
90
  files:
118
- - .gitignore
91
+ - ".gitignore"
92
+ - ".travis.yml"
119
93
  - Gemfile
120
94
  - LICENSE.txt
121
95
  - README.md
@@ -140,27 +114,26 @@ files:
140
114
  homepage: https://github.com/mrsimo/minitest-perf
141
115
  licenses:
142
116
  - MIT
117
+ metadata: {}
143
118
  post_install_message:
144
119
  rdoc_options: []
145
120
  require_paths:
146
121
  - lib
147
122
  required_ruby_version: !ruby/object:Gem::Requirement
148
- none: false
149
123
  requirements:
150
- - - ! '>='
124
+ - - ">="
151
125
  - !ruby/object:Gem::Version
152
126
  version: '0'
153
127
  required_rubygems_version: !ruby/object:Gem::Requirement
154
- none: false
155
128
  requirements:
156
- - - ! '>='
129
+ - - ">="
157
130
  - !ruby/object:Gem::Version
158
131
  version: '0'
159
132
  requirements: []
160
133
  rubyforge_project:
161
- rubygems_version: 1.8.23
134
+ rubygems_version: 2.4.1
162
135
  signing_key:
163
- specification_version: 3
136
+ specification_version: 4
164
137
  summary: Require minitest/perf when running your tests, and a handful of data will
165
138
  be recorded for later query and study. Find particularly slow tests, and understand
166
139
  your tests even more.