knapsack 0.3.0 → 0.4.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/.gitignore +1 -0
- data/.travis.yml +1 -0
- data/CHANGELOG.md +4 -0
- data/README.md +13 -1
- data/docs/images/logos/knapsack-big.png +0 -0
- data/docs/images/logos/knapsack-logo-big.png +0 -0
- data/knapsack.gemspec +1 -1
- data/lib/knapsack/adapters/rspec_adapter.rb +8 -3
- data/lib/knapsack/version.rb +1 -1
- data/spec/knapsack/adapters/rspec_adapter_spec.rb +2 -10
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bc477465c1e83c26805933d0aead7afb9dd5cd49
|
4
|
+
data.tar.gz: 73dc9071d26112fe9f7dc546aed93904bc553aac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f1151ac4215c86a36f7a0c977a7ec7fd7253cb4234afd83180ba18889891c6bde675423f83c03039b2ff45bea8c4e6dad4d4dd58e661b3b4b99e57a2ee6e8483
|
7
|
+
data.tar.gz: 79ac330dd040c46f2217f768a068eaa49e0470cc64ed64c2fe72e747fe2c42a0989f1b279e219ff9e56c04406244ed35580c072062013b10d94101895cb688ac
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
[Knapsack, The K is silent](http://www.youtube.com/watch?v=-Ae590hensE)
|
2
|
+
|
1
3
|
# 
|
2
4
|
|
3
5
|
[][gem_version]
|
@@ -10,10 +12,14 @@
|
|
10
12
|
[codeclimate]: https://codeclimate.com/github/ArturT/knapsack
|
11
13
|
[coverage]: https://codeclimate.com/github/ArturT/knapsack
|
12
14
|
|
13
|
-
|
15
|
+
**Knapsack splits tests across CI nodes and makes sure that tests will run comparable time on each node.**
|
16
|
+
|
17
|
+
Parallel specs across CI server nodes based on each spec file's time execution. Knapsack generates a spec time execution report and uses it for future test runs.
|
14
18
|
|
15
19
|
Short [presentation](http://slides.com/arturt/knapsack) about gem.
|
16
20
|
|
21
|
+
**[Sign up](http://knapsack.launchrock.com) to get info about launch Knapsack Pro with more features and free access for beta users.**
|
22
|
+
|
17
23
|
### Without Knapsack
|
18
24
|
|
19
25
|

|
@@ -213,3 +219,9 @@ Specs in `spec_examples/leftover` take more than 3 seconds. This should cause a
|
|
213
219
|
## Acknowledgements
|
214
220
|
|
215
221
|
Many thanks to [Małgorzata Nowak](https://github.com/informatykgosia) for beautiful logo.
|
222
|
+
|
223
|
+
## Mentions
|
224
|
+
|
225
|
+
* Lunar Logic Blog | [Parallel your specs and don’t waste time](http://blog.lunarlogic.io/2014/parallel-your-specs-and-dont-waste-time/)
|
226
|
+
* Travis CI | [Parallelizing RSpec tests on multiple VMs](http://docs.travis-ci.com/user/speeding-up-the-build/#Parallelizing-RSpec-tests-on-multiple-VMs)
|
227
|
+
* Semaphore | [Running RSpec specs in parallel](https://semaphoreapp.com/docs/running-rspec-specs-in-threads.html)
|
Binary file
|
Binary file
|
data/knapsack.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.add_development_dependency 'bundler', '~> 1.6'
|
22
22
|
spec.add_development_dependency 'rake', '~> 0'
|
23
|
-
spec.add_development_dependency 'rspec', '~> 3.0', '>=
|
23
|
+
spec.add_development_dependency 'rspec', '~> 3.0', '>= 2.0.0'
|
24
24
|
spec.add_development_dependency 'timecop', '~> 0'
|
25
25
|
spec.add_development_dependency 'codeclimate-test-reporter', '~> 0'
|
26
26
|
end
|
@@ -4,7 +4,13 @@ module Knapsack
|
|
4
4
|
def bind_time_tracker
|
5
5
|
::RSpec.configure do |config|
|
6
6
|
config.before(:each) do
|
7
|
-
|
7
|
+
current_example_group =
|
8
|
+
if ::RSpec.respond_to?(:current_example)
|
9
|
+
::RSpec.current_example.metadata[:example_group]
|
10
|
+
else
|
11
|
+
example.metadata
|
12
|
+
end
|
13
|
+
Knapsack.tracker.spec_path = RspecAdapter.spec_path(current_example_group)
|
8
14
|
Knapsack.tracker.start_timer
|
9
15
|
end
|
10
16
|
|
@@ -35,8 +41,7 @@ module Knapsack
|
|
35
41
|
end
|
36
42
|
end
|
37
43
|
|
38
|
-
def self.spec_path
|
39
|
-
example_group = ::RSpec.current_example.metadata[:example_group]
|
44
|
+
def self.spec_path(example_group)
|
40
45
|
until example_group[:parent_example_group].nil?
|
41
46
|
example_group = example_group[:parent_example_group]
|
42
47
|
end
|
data/lib/knapsack/version.rb
CHANGED
@@ -71,10 +71,8 @@ describe Knapsack::Adapters::RspecAdapter do
|
|
71
71
|
end
|
72
72
|
|
73
73
|
describe '.spec_path' do
|
74
|
-
let(:
|
75
|
-
let(:metadata) do
|
74
|
+
let(:current_example_metadata) do
|
76
75
|
{
|
77
|
-
example_group: {
|
78
76
|
file_path: '1_shared_example.rb',
|
79
77
|
parent_example_group: {
|
80
78
|
file_path: '2_shared_example.rb',
|
@@ -82,16 +80,10 @@ describe Knapsack::Adapters::RspecAdapter do
|
|
82
80
|
file_path: 'a_spec.rb'
|
83
81
|
}
|
84
82
|
}
|
85
|
-
}
|
86
83
|
}
|
87
84
|
end
|
88
85
|
|
89
|
-
subject { described_class.spec_path }
|
90
|
-
|
91
|
-
before do
|
92
|
-
allow(::RSpec).to receive(:current_example).and_return(current_example)
|
93
|
-
allow(current_example).to receive(:metadata).and_return(metadata)
|
94
|
-
end
|
86
|
+
subject { described_class.spec_path(current_example_metadata) }
|
95
87
|
|
96
88
|
it { should eql 'a_spec.rb' }
|
97
89
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knapsack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ArturT
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -47,7 +47,7 @@ dependencies:
|
|
47
47
|
version: '3.0'
|
48
48
|
- - ">="
|
49
49
|
- !ruby/object:Gem::Version
|
50
|
-
version:
|
50
|
+
version: 2.0.0
|
51
51
|
type: :development
|
52
52
|
prerelease: false
|
53
53
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -57,7 +57,7 @@ dependencies:
|
|
57
57
|
version: '3.0'
|
58
58
|
- - ">="
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version:
|
60
|
+
version: 2.0.0
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: timecop
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -105,7 +105,9 @@ files:
|
|
105
105
|
- Rakefile
|
106
106
|
- TODO.md
|
107
107
|
- docs/images/logos/knapsack-@2.png
|
108
|
+
- docs/images/logos/knapsack-big.png
|
108
109
|
- docs/images/logos/knapsack-logo-@2.png
|
110
|
+
- docs/images/logos/knapsack-logo-big.png
|
109
111
|
- docs/images/logos/knapsack-logo.png
|
110
112
|
- docs/images/logos/knapsack.png
|
111
113
|
- docs/images/with_knapsack.png
|