rspeed 0.1.0 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +34 -0
- data/README.md +11 -7
- data/lib/generators/rspeed/install_generator.rb +1 -1
- data/lib/rspeed.rb +9 -5
- data/lib/rspeed/env.rb +43 -0
- data/lib/rspeed/extension.rb +6 -37
- data/lib/rspeed/logger.rb +11 -0
- data/lib/rspeed/observer.rb +43 -0
- data/lib/rspeed/redis.rb +55 -0
- data/lib/rspeed/runner.rb +4 -17
- data/lib/rspeed/splitter.rb +65 -73
- data/lib/rspeed/variable.rb +31 -0
- data/lib/rspeed/version.rb +1 -1
- data/spec/common_helper.rb +10 -0
- data/spec/fixtures/1_spec.rb +9 -0
- data/spec/fixtures/2_spec.rb +5 -0
- data/spec/fixtures/empty.rb +4 -0
- data/spec/fixtures/new_spec.rb.csv +1 -0
- data/spec/models/rspeed/env/db_spec.rb +17 -0
- data/spec/models/rspeed/env/host_spec.rb +17 -0
- data/spec/models/rspeed/env/name_spec.rb +17 -0
- data/spec/models/rspeed/env/pipe_spec.rb +19 -0
- data/spec/models/rspeed/env/pipes_spec.rb +19 -0
- data/spec/models/rspeed/env/port_spec.rb +17 -0
- data/spec/models/rspeed/env/result_key_spec.rb +19 -0
- data/spec/models/rspeed/env/rspeed_spec.rb +43 -0
- data/spec/models/rspeed/env/tmp_spec.rb +19 -0
- data/spec/models/rspeed/observer/after_spec.rb +16 -0
- data/spec/models/rspeed/observer/after_suite_spec.rb +70 -0
- data/spec/models/rspeed/observer/before_spec.rb +15 -0
- data/spec/models/rspeed/observer/before_suite_spec.rb +37 -0
- data/spec/models/rspeed/redis/clean_spec.rb +12 -0
- data/spec/models/rspeed/redis/client_spec.rb +7 -0
- data/spec/models/rspeed/redis/destroy_spec.rb +29 -0
- data/spec/models/rspeed/redis/get_spec.rb +9 -0
- data/spec/models/rspeed/redis/keys_spec.rb +29 -0
- data/spec/models/rspeed/redis/result_spec.rb +13 -0
- data/spec/models/rspeed/redis/set_spec.rb +9 -0
- data/spec/models/rspeed/redis/specs_finished_spec.rb +19 -0
- data/spec/models/rspeed/redis/specs_initiated_spec.rb +13 -0
- data/spec/models/rspeed/runner/run_spec.rb +47 -0
- data/spec/models/rspeed/splitter/actual_examples_spec.rb +26 -0
- data/spec/models/rspeed/splitter/append_question_spec.rb +37 -0
- data/spec/models/rspeed/splitter/append_spec.rb +6 -3
- data/spec/models/rspeed/splitter/diff_spec.rb +15 -14
- data/spec/models/rspeed/splitter/first_pipe_spec.rb +2 -4
- data/spec/models/rspeed/splitter/get_spec.rb +7 -9
- data/spec/models/rspeed/splitter/need_warm_question_spec.rb +37 -0
- data/spec/models/rspeed/splitter/pipe_files_spec.rb +26 -0
- data/spec/models/rspeed/splitter/rename_spec.rb +3 -5
- data/spec/models/rspeed/splitter/split_spec.rb +72 -36
- data/spec/models/rspeed/variable/append_name_spec.rb +19 -0
- data/spec/models/rspeed/variable/csv_spec.rb +5 -0
- data/spec/models/rspeed/variable/default_partner_spec.rb +5 -0
- data/spec/models/rspeed/variable/key_spec.rb +15 -0
- data/spec/models/rspeed/variable/pipe_name_spec.rb +15 -0
- data/spec/models/rspeed/variable/pipes_pattern_spec.rb +5 -0
- data/spec/models/rspeed/variable/result_spec.rb +19 -0
- data/spec/models/rspeed/variable/tmp_spec.rb +15 -0
- data/spec/spec_helper.rb +27 -0
- data/spec/support/common.rb +13 -0
- data/spec/support/coverage.rb +14 -0
- data/spec/support/env_mock.rb +3 -0
- data/spec/support/fakeredis.rb +3 -0
- metadata +155 -20
- data/spec/models/rspeed/splitter/destroy_spec.rb +0 -33
- data/spec/models/rspeed/splitter/keys_spec.rb +0 -33
- data/spec/models/rspeed/splitter/last_pipe_spec.rb +0 -21
- data/spec/models/rspeed/splitter/pipe_spec.rb +0 -21
- data/spec/models/rspeed/splitter/pipes_spec.rb +0 -27
- data/spec/models/rspeed/splitter/result_spec.rb +0 -19
- data/spec/models/rspeed/splitter/save_spec.rb +0 -55
- data/spec/rails_helper.rb +0 -24
@@ -1,33 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'rails_helper'
|
4
|
-
|
5
|
-
RSpec.describe RSpeed::Splitter, '#destroy' do
|
6
|
-
subject(:splitter) { described_class.new }
|
7
|
-
|
8
|
-
let!(:redis) { redis_object }
|
9
|
-
|
10
|
-
before do
|
11
|
-
redis.set 'rspeed', '{}'
|
12
|
-
redis.set 'rspeed_1', '{}'
|
13
|
-
redis.set 'rspeed_2', '{}'
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'destroys via wildcard' do
|
17
|
-
splitter.destroy 'rspeed_*'
|
18
|
-
|
19
|
-
expect(splitter.keys('*')).to eq %w[rspeed]
|
20
|
-
end
|
21
|
-
|
22
|
-
it 'destroys via single name' do
|
23
|
-
splitter.destroy 'rspeed'
|
24
|
-
|
25
|
-
expect(splitter.keys('*')).to eq %w[rspeed_1 rspeed_2]
|
26
|
-
end
|
27
|
-
|
28
|
-
it 'destroys default partner when no pattern is given' do
|
29
|
-
splitter.destroy
|
30
|
-
|
31
|
-
expect(splitter.keys('*')).to eq %w[rspeed]
|
32
|
-
end
|
33
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'rails_helper'
|
4
|
-
|
5
|
-
RSpec.describe RSpeed::Splitter, '.keys' do
|
6
|
-
subject(:splitter) { described_class.new }
|
7
|
-
|
8
|
-
let!(:redis) { redis_object }
|
9
|
-
|
10
|
-
context 'with default config' do
|
11
|
-
before do
|
12
|
-
redis.set 'rspeed_1', 'value_1'
|
13
|
-
redis.set 'rspeed_2', 'value_2'
|
14
|
-
redis.set 'rspeed_3', 'value_3'
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'shows keys' do
|
18
|
-
expect(splitter.keys).to eq %w[rspeed_1 rspeed_2 rspeed_3]
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
context 'with custom key' do
|
23
|
-
before do
|
24
|
-
redis.set 'custom_key_1', 'value_1'
|
25
|
-
redis.set 'custom_key_2', 'value_2'
|
26
|
-
redis.set 'custom_key_3', 'value_3'
|
27
|
-
end
|
28
|
-
|
29
|
-
it 'shows keys' do
|
30
|
-
expect(splitter.keys('custom_key_*')).to eq %w[custom_key_1 custom_key_2 custom_key_3]
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'rails_helper'
|
4
|
-
|
5
|
-
RSpec.describe RSpeed::Splitter, '.last_pipe?' do
|
6
|
-
subject(:splitter) { described_class.new }
|
7
|
-
|
8
|
-
before { allow(splitter).to receive(:pipes).and_return 3 }
|
9
|
-
|
10
|
-
context 'when pipe env is equal pipes env' do
|
11
|
-
before { allow(splitter).to receive(:pipe).and_return 3 }
|
12
|
-
|
13
|
-
it { expect(splitter.last_pipe?).to eq true }
|
14
|
-
end
|
15
|
-
|
16
|
-
context 'when pipe env not equal pipes env' do
|
17
|
-
before { allow(splitter).to receive(:pipe).and_return 2 }
|
18
|
-
|
19
|
-
it { expect(splitter.last_pipe?).to eq false }
|
20
|
-
end
|
21
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'rails_helper'
|
4
|
-
|
5
|
-
RSpec.describe RSpeed::Splitter, '#pipe' do
|
6
|
-
subject(:splitter) { described_class.new }
|
7
|
-
|
8
|
-
context 'when pipe env is given' do
|
9
|
-
before { ENV['RSPEED_PIPE'] = '2' }
|
10
|
-
|
11
|
-
it 'returns the number of the current pipe' do
|
12
|
-
expect(splitter.pipe).to eq 2
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
context 'when pipe env is not given' do
|
17
|
-
it 'returns 1' do
|
18
|
-
expect(splitter.pipe).to eq 1
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'rails_helper'
|
4
|
-
|
5
|
-
RSpec.describe RSpeed::Splitter, '#pipes' do
|
6
|
-
subject(:splitter) { described_class.new }
|
7
|
-
|
8
|
-
context 'when has no result' do
|
9
|
-
before { allow(splitter).to receive(:result?).and_return(false) }
|
10
|
-
|
11
|
-
it 'the number of pipes is adjusted to one' do
|
12
|
-
expect(splitter.pipes).to eq 1
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
context 'when has result' do
|
17
|
-
before do
|
18
|
-
allow(splitter).to receive(:result?).and_return(true)
|
19
|
-
|
20
|
-
ENV['RSPEED_PIPES'] = '2'
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'is used the given value on env' do
|
24
|
-
expect(splitter.pipes).to eq 2
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'rails_helper'
|
4
|
-
|
5
|
-
RSpec.describe RSpeed::Splitter, '#result?' do
|
6
|
-
subject(:splitter) { described_class.new }
|
7
|
-
|
8
|
-
context 'when has no key rspeed on redis' do
|
9
|
-
it { expect(splitter.result?).to eq false }
|
10
|
-
end
|
11
|
-
|
12
|
-
context 'when has no key rspeed on redis' do
|
13
|
-
let!(:redis) { redis_object }
|
14
|
-
|
15
|
-
before { redis.set 'rspeed', { files: [[1, '1_spec.rb']], number: 0, total: 1 }.to_json }
|
16
|
-
|
17
|
-
it { expect(splitter.result?).to eq true }
|
18
|
-
end
|
19
|
-
end
|
@@ -1,55 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'rails_helper'
|
4
|
-
|
5
|
-
RSpec.describe RSpeed::Splitter, '.save' do
|
6
|
-
subject(:splitter) { described_class.new }
|
7
|
-
|
8
|
-
let!(:redis) { redis_object }
|
9
|
-
|
10
|
-
before do
|
11
|
-
allow(splitter).to receive(:pipes).and_return(3)
|
12
|
-
|
13
|
-
redis.lpush 'rspeed', { file: "./spec/0_2_spec.rb", time: '0.2' }.to_json
|
14
|
-
redis.lpush 'rspeed', { file: "./spec/0_3_spec.rb", time: '0.3' }.to_json
|
15
|
-
redis.lpush 'rspeed', { file: "./spec/0_4_spec.rb", time: '0.4' }.to_json
|
16
|
-
redis.lpush 'rspeed', { file: "./spec/0_7_spec.rb", time: '0.7' }.to_json
|
17
|
-
redis.lpush 'rspeed', { file: "./spec/1_1_spec.rb", time: '1.1' }.to_json
|
18
|
-
redis.lpush 'rspeed', { file: "./spec/1_5_spec.rb", time: '1.5' }.to_json
|
19
|
-
redis.lpush 'rspeed', { file: "./spec/2_0_spec.rb", time: '2.0' }.to_json
|
20
|
-
end
|
21
|
-
|
22
|
-
it 'saves the data on redis' do
|
23
|
-
splitter.save
|
24
|
-
|
25
|
-
expect(redis.keys('*')).to eq %w[rspeed rspeed_1 rspeed_2 rspeed_3]
|
26
|
-
|
27
|
-
expect(JSON.parse(redis.get('rspeed_1'), symbolize_names: true)).to eq(
|
28
|
-
files: [{ file: './spec/2_0_spec.rb', time: 2.0 }],
|
29
|
-
number: 1,
|
30
|
-
total: 2.0
|
31
|
-
)
|
32
|
-
|
33
|
-
expect(JSON.parse(redis.get('rspeed_2'), symbolize_names: true)).to eq(
|
34
|
-
files: [
|
35
|
-
{ file: './spec/1_5_spec.rb', time: 1.5 },
|
36
|
-
{ file: './spec/0_4_spec.rb', time: 0.4 },
|
37
|
-
{ file: './spec/0_2_spec.rb', time: 0.2 }
|
38
|
-
],
|
39
|
-
|
40
|
-
number: 2,
|
41
|
-
total: 1.5 + 0.4 + 0.2
|
42
|
-
)
|
43
|
-
|
44
|
-
expect(JSON.parse(redis.get('rspeed_3'), symbolize_names: true)).to eq(
|
45
|
-
files: [
|
46
|
-
{ file: './spec/1_1_spec.rb', time: 1.1 },
|
47
|
-
{ file: './spec/0_7_spec.rb', time: 0.7 },
|
48
|
-
{ file: './spec/0_3_spec.rb', time: 0.3 }
|
49
|
-
],
|
50
|
-
|
51
|
-
number: 3,
|
52
|
-
total: 1.1 + 0.7 + 0.3
|
53
|
-
)
|
54
|
-
end
|
55
|
-
end
|
data/spec/rails_helper.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
ENV['RAILS_ENV'] ||= 'test'
|
4
|
-
|
5
|
-
require 'fakeredis/rspec'
|
6
|
-
require 'json'
|
7
|
-
require 'pry-byebug'
|
8
|
-
require 'rspec'
|
9
|
-
require 'rspeed'
|
10
|
-
|
11
|
-
RSpec.configure do |config|
|
12
|
-
config.disable_monkey_patching!
|
13
|
-
|
14
|
-
config.order = :random
|
15
|
-
|
16
|
-
config.after do
|
17
|
-
ENV.delete 'RSPEED_PIPE'
|
18
|
-
ENV.delete 'RSPEED_PIPES'
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def redis_object
|
23
|
-
@redis_object ||= Redis.new(db: ENV['RSPEED_DB'], host: ENV['RSPEED_HOST'])
|
24
|
-
end
|