suspect 0.1.0 → 0.2.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/README.md +4 -2
- data/lib/suspect/rspec_listener.rb +21 -2
- data/lib/suspect/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7d8a6b1f3701ec7526b3219eebb0f1f9f2a57531
|
|
4
|
+
data.tar.gz: d1a2a1b0dd181e1633491334164500afd981c3ca
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f4ccc697e535a6c0e69e442b3f6b1e8c4328b7d967d47245d0ff8943924bffe8a0ecb3f0bc89fc92ab86bf98eddd06d4e4f725621b3d7a0e1af7f6f25660beae
|
|
7
|
+
data.tar.gz: a9d9b18a3d1f9e87434289f809688004b3f0c2f29ab0657a4011b00ec8d4af0e9499cf0ce4132f9fc204767bec7a753bb376a610c6da224dd11826599fdf6806
|
data/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
[](https://travis-ci.org/MitinPavel/suspect)
|
|
2
|
+
|
|
1
3
|
# Suspect
|
|
2
4
|
|
|
3
|
-
If you have **slow tests**, you need a troubleshooting strategy. It takes a lot of effort to get rid of this smell. In meantime it is good to have a palliative. `Suspect` provides such a band-aid. The gem collects test results along with VCS (Git) status and
|
|
5
|
+
If you have **slow tests**, you need a troubleshooting strategy. It takes a lot of effort to get rid of this smell. In meantime it is good to have a palliative. `Suspect` provides such a band-aid. The gem collects test results along with VCS (Git) status and uses harvested data to select a subset of test files to be run.
|
|
4
6
|
|
|
5
7
|
## Tags
|
|
6
8
|
|
|
@@ -69,7 +71,7 @@ end
|
|
|
69
71
|
|
|
70
72
|
As soon as the gem is added to Gemfile and `Suspect::RSpecListener.setup_using config` is invoked in `spec/spec_helper.rb`, the gathering part is up and running. Each time you run specs, results are stored for further usage. Harvested data is stored under `suspect/` folder in *.suspect files. Adding *.suspect files under source control allows data sharing between project members.
|
|
71
73
|
|
|
72
|
-
|
|
74
|
+
### Prediction
|
|
73
75
|
|
|
74
76
|
`Suspect::Prediction::Default.paths` returns a list of spec files which are more likely to fall. The installation section above contains a simple rake task for the prediction phase. Fill free to modify the task to better meet your requirements.
|
|
75
77
|
|
|
@@ -27,19 +27,38 @@ module Suspect
|
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
def register_listener(reporter)
|
|
30
|
+
return unless supported_platform?
|
|
31
|
+
|
|
32
|
+
structure = build_structure
|
|
33
|
+
listener = build_listener(structure)
|
|
34
|
+
|
|
35
|
+
reporter.register_listener listener, *listener.notification_names
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
private
|
|
39
|
+
|
|
40
|
+
def build_structure
|
|
30
41
|
root_path = ::Pathname.new('.')
|
|
31
42
|
file_helper = ::Suspect::FileUtils::Idempotent.new
|
|
32
43
|
structure = ::Suspect::Setup::Structure.new(root_path)
|
|
33
44
|
collector_id_generator = ::Suspect::Setup::CollectorIdGenerator.new
|
|
34
45
|
::Suspect::Setup::Creator.new(structure, collector_id_generator, file_helper).build
|
|
35
46
|
|
|
47
|
+
structure
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def build_listener(structure)
|
|
36
51
|
storage_path = ::Suspect::Storage::DirPath.new(structure.storage_path, Time.now.utc)
|
|
52
|
+
file_helper = ::Suspect::FileUtils::Idempotent.new
|
|
37
53
|
collector_id = file_helper.read(structure.collector_id_path)
|
|
38
54
|
storage = ::Suspect::Storage::Appender.new(dir_path: storage_path, dir_helper: file_helper, collector_id: collector_id)
|
|
39
55
|
file_tree = ::Suspect::FileTree::Git::Snapshot.new
|
|
40
|
-
listener = ::Suspect::Gathering::RSpec::Listener.new(file_tree, storage, collector_id, ::Time.now.utc)
|
|
41
56
|
|
|
42
|
-
|
|
57
|
+
::Suspect::Gathering::RSpec::Listener.new(file_tree, storage, collector_id, ::Time.now.utc)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def supported_platform?
|
|
61
|
+
::Gem::Platform.local.os == 'linux'
|
|
43
62
|
end
|
|
44
63
|
end
|
|
45
64
|
end
|
data/lib/suspect/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: suspect
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Pavlo Mitin
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-05-
|
|
11
|
+
date: 2017-05-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|