mutator_rails 0.1.8
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 +7 -0
- data/.circleci/config.yml +37 -0
- data/.codeclimate.yml +20 -0
- data/.gitignore +12 -0
- data/.rspec +2 -0
- data/.ruby-version +1 -0
- data/CODE_OF_CONDUCT.md +46 -0
- data/Gemfile +7 -0
- data/Gemfile.lock +232 -0
- data/LICENSE.md +21 -0
- data/README.md +31 -0
- data/Rakefile +8 -0
- data/app/models/test.rb +7 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/config/mutator_rails.yml +8 -0
- data/defaults.reek +131 -0
- data/lib/mutator_rails.rb +33 -0
- data/lib/mutator_rails/analyze.rb +27 -0
- data/lib/mutator_rails/cleanup.rb +60 -0
- data/lib/mutator_rails/config.rb +34 -0
- data/lib/mutator_rails/full_mutate.rb +39 -0
- data/lib/mutator_rails/guide.rb +69 -0
- data/lib/mutator_rails/list_maker.rb +25 -0
- data/lib/mutator_rails/mutation_log.rb +112 -0
- data/lib/mutator_rails/railtie.rb +18 -0
- data/lib/mutator_rails/single_mutate.rb +134 -0
- data/lib/mutator_rails/statistics.rb +192 -0
- data/lib/mutator_rails/version.rb +5 -0
- data/lib/tasks/mutator/analyze.rake +13 -0
- data/lib/tasks/mutator/cleanup.rake +13 -0
- data/lib/tasks/mutator/mutate_files.rake +12 -0
- data/lib/tasks/mutator/mutator.rake +17 -0
- data/lib/tasks/mutator/statistics.rake +13 -0
- data/log/mutant/analysis.tsv +3 -0
- data/log/mutant/guide.txt +1 -0
- data/log/mutant/models/test.log +92 -0
- data/log/mutant/models/test2.log +92 -0
- data/log/mutant/statistics.txt +19 -0
- data/mutator_rails.gemspec +37 -0
- data/spec/models/test_spec.rb +15 -0
- data/spec/mutator_rails/analyze_spec.rb +26 -0
- data/spec/mutator_rails/cleanup_spec.rb +13 -0
- data/spec/mutator_rails/full_mutate_spec.rb +13 -0
- data/spec/mutator_rails/guide_spec.rb +33 -0
- data/spec/mutator_rails/list_maker_spec.rb +17 -0
- data/spec/mutator_rails/mutation_log_spec.rb +36 -0
- data/spec/mutator_rails/single_mutate_spec.rb +111 -0
- data/spec/mutator_rails/statistics_spec.rb +48 -0
- data/spec/mutator_rails_spec.rb +9 -0
- data/spec/spec_helper.rb +49 -0
- metadata +306 -0
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe MutatorRails::ListMaker do
|
6
|
+
|
7
|
+
let(:object) { described_class.new }
|
8
|
+
|
9
|
+
describe '#make_list' do
|
10
|
+
it 'has proper content' do
|
11
|
+
result = object.make_list
|
12
|
+
|
13
|
+
expect(result).to have(2).entries
|
14
|
+
expect(result.last.link).to eql('=HYPERLINK("models/test2.log","Export::ActivityExporter2")')
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe MutatorRails::MutationLog do
|
6
|
+
let(:log) { 'log/mutant/models/test.log' }
|
7
|
+
let(:object) { described_class.new(log) }
|
8
|
+
|
9
|
+
describe '#call' do
|
10
|
+
let(:expectation) { '\t73\t26\t99\t73.737\t1.559\t63.52' }
|
11
|
+
subject { object.to_s }
|
12
|
+
it 'processes the all code' do
|
13
|
+
expect(subject).to match(expectation)
|
14
|
+
expect(subject).to match('HYPERLINK')
|
15
|
+
expect(subject).to match('"Export::ActivityExporter"')
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe '#pct' do
|
20
|
+
it 'has a pct' do
|
21
|
+
expect(object.pct).to equal 73.737
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe '#alive' do
|
26
|
+
it 'has an alive count' do
|
27
|
+
expect(object.alive).to equal 26
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe '#link' do
|
32
|
+
it 'has a link' do
|
33
|
+
expect(object.link).to eql '=HYPERLINK("models/test.log","Export::ActivityExporter")'
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,111 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe MutatorRails::SingleMutate do
|
6
|
+
let(:file) { 'app/models/test.rb' }
|
7
|
+
let(:guide) { MutatorRails::Guide.new }
|
8
|
+
let(:object) { described_class.new(guide, file) }
|
9
|
+
|
10
|
+
describe '#call' do
|
11
|
+
it 'processes the all code' do
|
12
|
+
object.call
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe '#old_log' do
|
17
|
+
it 'returns old log file name (deprecated name)' do
|
18
|
+
expect(object.old_log)
|
19
|
+
.to eql('log/mutant/models/test_fdef5a515ce8eff897a72b026aadbaba_0e7f4802f58bbbb186be8b44a74a33e3_0.8.14.log')
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe '#log_location' do
|
24
|
+
it 'returns log file' do
|
25
|
+
expect(object.log_location.to_s)
|
26
|
+
.to eql('log/mutant/models/test')
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe '#full_log' do
|
31
|
+
it 'returns full log file name' do
|
32
|
+
expect(object.full_log.to_s)
|
33
|
+
.to eql('log/mutant/models/test.log')
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe '#log' do
|
38
|
+
it 'returns log file' do
|
39
|
+
expect(object.log.to_s)
|
40
|
+
.to eql('log/mutant/models/test.log')
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe '#log_dir' do
|
45
|
+
it 'returns log file dir' do
|
46
|
+
expect(object.log_dir.to_s).to eql('log/mutant/models')
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe '#spec_md5' do
|
51
|
+
it 'returns md5 hash of spec file' do
|
52
|
+
expect(object.spec_md5)
|
53
|
+
.to eql('0e7f4802f58bbbb186be8b44a74a33e3')
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
describe '#path' do
|
58
|
+
it 'returns path to code' do
|
59
|
+
expect(object.path)
|
60
|
+
.to be_an_instance_of(Pathname)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
describe '#rerun' do
|
65
|
+
let(:cmd) { 'command' }
|
66
|
+
it 'returns nothing - no rerun' do
|
67
|
+
expect(object.rerun(cmd)).to be_nil
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
describe '#first_run' do
|
72
|
+
let(:parms) { %w[a b] }
|
73
|
+
it 'returns first run results cmd' do
|
74
|
+
expect(object.first_run(parms))
|
75
|
+
.to eql('SPEC_OPTS="--pattern spec/models/test_spec.rb" RAILS_ENV=test bundle exec mutant a b')
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
describe '#spec_opt' do
|
80
|
+
it 'returns spec option string' do
|
81
|
+
expect(object.spec_opt)
|
82
|
+
.to eql('SPEC_OPTS="--pattern spec/models/test_spec.rb" ')
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
describe '#spec_file' do
|
87
|
+
it 'returns spec_file name' do
|
88
|
+
expect(object.spec_file)
|
89
|
+
.to eql('spec/models/test_spec.rb')
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
describe '#complete?' do
|
94
|
+
let(:log) { 'log/mutant/models/test.log' }
|
95
|
+
let(:file2) { __FILE__ }
|
96
|
+
it 'returns completion indication' do
|
97
|
+
expect(object.complete?(log)).to be true
|
98
|
+
end
|
99
|
+
|
100
|
+
it 'returns completion indication' do
|
101
|
+
expect(object.complete?(file2)).to be false
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
describe '#preface' do
|
106
|
+
let(:base) { 'abc' }
|
107
|
+
it 'returns preface' do
|
108
|
+
expect(object.preface(base)).to eql('')
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe MutatorRails::Statistics do
|
6
|
+
let(:object) { described_class.call }
|
7
|
+
let(:statistics_file) { 'log/mutant/statistics.txt' }
|
8
|
+
before do
|
9
|
+
File.delete(statistics_file) if File.exist?(statistics_file)
|
10
|
+
end
|
11
|
+
|
12
|
+
describe '#call' do
|
13
|
+
let(:expectations) do
|
14
|
+
"
|
15
|
+
2 module(s) were mutated in 2 minutes 7 seconds
|
16
|
+
for a total of 198 mutations tested @ 1.56/sec average
|
17
|
+
which left 52 mutations alive (26.3%)
|
18
|
+
and 146 killed (73.7%)
|
19
|
+
|
20
|
+
0 module(s) were fully mutated (0.0%)
|
21
|
+
|
22
|
+
The following modules had most alive mutations (top 10):
|
23
|
+
. Export::ActivityExporter (26)
|
24
|
+
. Export::ActivityExporter2 (26)
|
25
|
+
|
26
|
+
The following modules had longest mutation time (top 10):
|
27
|
+
. Export::ActivityExporter (1 minute 3 seconds)
|
28
|
+
. Export::ActivityExporter2 (1 minute 3 seconds)
|
29
|
+
|
30
|
+
The following modules had largest mutation count (top 10):
|
31
|
+
. Export::ActivityExporter (99)
|
32
|
+
. Export::ActivityExporter2 (99)"
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'processes the log files' do
|
36
|
+
object
|
37
|
+
|
38
|
+
expect(File.exist?(statistics_file)).to be true
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'has the proper stats' do
|
42
|
+
object
|
43
|
+
stats = File.read(statistics_file)
|
44
|
+
|
45
|
+
expect(stats).to match(expectations)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
ENV['RACK_ENV'] = 'test'
|
4
|
+
|
5
|
+
require 'simplecov'
|
6
|
+
|
7
|
+
SimpleCov.add_filter '/spec/'
|
8
|
+
SimpleCov.start 'rails' unless File.basename($0).eql?('mutant')
|
9
|
+
|
10
|
+
require 'bundler/setup'
|
11
|
+
require 'mutator_rails'
|
12
|
+
require 'rspec/collection_matchers'
|
13
|
+
|
14
|
+
RSpec.configure do |config|
|
15
|
+
# Enable flags like --only-failures and --next-failure
|
16
|
+
config.example_status_persistence_file_path = '.rspec_status'
|
17
|
+
|
18
|
+
# Disable RSpec exposing methods globally on `Module` and `main`
|
19
|
+
config.disable_monkey_patching!
|
20
|
+
|
21
|
+
config.expect_with :rspec do |c|
|
22
|
+
c.syntax = :expect
|
23
|
+
|
24
|
+
# This option will default to `true` in RSpec 4. It makes the `description`
|
25
|
+
# and `failure_message` of custom matchers include text for helper methods
|
26
|
+
# defined using `chain`, e.g.:
|
27
|
+
# be_bigger_than(2).and_smaller_than(4).description
|
28
|
+
# # => "be bigger than 2 and smaller than 4"
|
29
|
+
# ...rather than:
|
30
|
+
# # => "be bigger than 2"
|
31
|
+
c.include_chain_clauses_in_custom_matcher_descriptions = true
|
32
|
+
end
|
33
|
+
|
34
|
+
# rspec-mocks config goes here. You can use an alternate test double
|
35
|
+
# library (such as bogus or mocha) by changing the `mock_with` option here.
|
36
|
+
config.mock_with :rspec do |mocks|
|
37
|
+
# Prevents you from mocking or stubbing a method that does not exist on
|
38
|
+
# a real object. This is generally recommended, and will default to
|
39
|
+
# `true` in RSpec 4.
|
40
|
+
mocks.verify_partial_doubles = true
|
41
|
+
end
|
42
|
+
|
43
|
+
# This option will default to `:apply_to_host_groups` in RSpec 4 (and will
|
44
|
+
# have no way to turn it off -- the option exists only for backwards
|
45
|
+
# compatibility in RSpec 3). It causes shared context metadata to be
|
46
|
+
# inherited by the metadata hash of host groups and examples, rather than
|
47
|
+
# triggering implicit auto-inclusion in groups with matching metadata.
|
48
|
+
config.shared_context_metadata_behavior = :apply_to_host_groups
|
49
|
+
end
|
metadata
ADDED
@@ -0,0 +1,306 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mutator_rails
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.8
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Tim Chambers
|
8
|
+
- Jason Dinsmore
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2018-01-05 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: bundler
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '1.15'
|
21
|
+
type: :development
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '1.15'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: rake
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '12.0'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '12.0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: rails
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '4.0'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '4.0'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: rspec-core
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 3.6.0
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 3.6.0
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rspec-expectations
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 3.6.0
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: 3.6.0
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: rspec_junit_formatter
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: codeclimate-test-reporter
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: rspec-collection_matchers
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: rspec-mocks
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - "~>"
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: 3.6.0
|
133
|
+
type: :development
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - "~>"
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: 3.6.0
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
name: mutant
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - "~>"
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: 0.8.14
|
147
|
+
type: :development
|
148
|
+
prerelease: false
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - "~>"
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: 0.8.14
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: mutant-rspec
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - "~>"
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: 0.8.14
|
161
|
+
type: :development
|
162
|
+
prerelease: false
|
163
|
+
version_requirements: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - "~>"
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: 0.8.14
|
168
|
+
- !ruby/object:Gem::Dependency
|
169
|
+
name: concord
|
170
|
+
requirement: !ruby/object:Gem::Requirement
|
171
|
+
requirements:
|
172
|
+
- - "~>"
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: 0.1.4
|
175
|
+
type: :development
|
176
|
+
prerelease: false
|
177
|
+
version_requirements: !ruby/object:Gem::Requirement
|
178
|
+
requirements:
|
179
|
+
- - "~>"
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: 0.1.4
|
182
|
+
- !ruby/object:Gem::Dependency
|
183
|
+
name: procto
|
184
|
+
requirement: !ruby/object:Gem::Requirement
|
185
|
+
requirements:
|
186
|
+
- - "~>"
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
version: 0.0.3
|
189
|
+
type: :development
|
190
|
+
prerelease: false
|
191
|
+
version_requirements: !ruby/object:Gem::Requirement
|
192
|
+
requirements:
|
193
|
+
- - "~>"
|
194
|
+
- !ruby/object:Gem::Version
|
195
|
+
version: 0.0.3
|
196
|
+
- !ruby/object:Gem::Dependency
|
197
|
+
name: adamantium
|
198
|
+
requirement: !ruby/object:Gem::Requirement
|
199
|
+
requirements:
|
200
|
+
- - "~>"
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
version: 0.2.0
|
203
|
+
type: :development
|
204
|
+
prerelease: false
|
205
|
+
version_requirements: !ruby/object:Gem::Requirement
|
206
|
+
requirements:
|
207
|
+
- - "~>"
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: 0.2.0
|
210
|
+
- !ruby/object:Gem::Dependency
|
211
|
+
name: reek
|
212
|
+
requirement: !ruby/object:Gem::Requirement
|
213
|
+
requirements:
|
214
|
+
- - "~>"
|
215
|
+
- !ruby/object:Gem::Version
|
216
|
+
version: 4.7.2
|
217
|
+
type: :development
|
218
|
+
prerelease: false
|
219
|
+
version_requirements: !ruby/object:Gem::Requirement
|
220
|
+
requirements:
|
221
|
+
- - "~>"
|
222
|
+
- !ruby/object:Gem::Version
|
223
|
+
version: 4.7.2
|
224
|
+
description: Automate mutation testing to find weaknesses in code
|
225
|
+
email:
|
226
|
+
- tim@possibilogy.com
|
227
|
+
- jason@dinjas.com
|
228
|
+
executables: []
|
229
|
+
extensions: []
|
230
|
+
extra_rdoc_files: []
|
231
|
+
files:
|
232
|
+
- ".circleci/config.yml"
|
233
|
+
- ".codeclimate.yml"
|
234
|
+
- ".gitignore"
|
235
|
+
- ".rspec"
|
236
|
+
- ".ruby-version"
|
237
|
+
- CODE_OF_CONDUCT.md
|
238
|
+
- Gemfile
|
239
|
+
- Gemfile.lock
|
240
|
+
- LICENSE.md
|
241
|
+
- README.md
|
242
|
+
- Rakefile
|
243
|
+
- app/models/test.rb
|
244
|
+
- bin/console
|
245
|
+
- bin/setup
|
246
|
+
- config/mutator_rails.yml
|
247
|
+
- defaults.reek
|
248
|
+
- lib/mutator_rails.rb
|
249
|
+
- lib/mutator_rails/analyze.rb
|
250
|
+
- lib/mutator_rails/cleanup.rb
|
251
|
+
- lib/mutator_rails/config.rb
|
252
|
+
- lib/mutator_rails/full_mutate.rb
|
253
|
+
- lib/mutator_rails/guide.rb
|
254
|
+
- lib/mutator_rails/list_maker.rb
|
255
|
+
- lib/mutator_rails/mutation_log.rb
|
256
|
+
- lib/mutator_rails/railtie.rb
|
257
|
+
- lib/mutator_rails/single_mutate.rb
|
258
|
+
- lib/mutator_rails/statistics.rb
|
259
|
+
- lib/mutator_rails/version.rb
|
260
|
+
- lib/tasks/mutator/analyze.rake
|
261
|
+
- lib/tasks/mutator/cleanup.rake
|
262
|
+
- lib/tasks/mutator/mutate_files.rake
|
263
|
+
- lib/tasks/mutator/mutator.rake
|
264
|
+
- lib/tasks/mutator/statistics.rake
|
265
|
+
- log/mutant/analysis.tsv
|
266
|
+
- log/mutant/guide.txt
|
267
|
+
- log/mutant/models/test.log
|
268
|
+
- log/mutant/models/test2.log
|
269
|
+
- log/mutant/statistics.txt
|
270
|
+
- mutator_rails.gemspec
|
271
|
+
- spec/models/test_spec.rb
|
272
|
+
- spec/mutator_rails/analyze_spec.rb
|
273
|
+
- spec/mutator_rails/cleanup_spec.rb
|
274
|
+
- spec/mutator_rails/full_mutate_spec.rb
|
275
|
+
- spec/mutator_rails/guide_spec.rb
|
276
|
+
- spec/mutator_rails/list_maker_spec.rb
|
277
|
+
- spec/mutator_rails/mutation_log_spec.rb
|
278
|
+
- spec/mutator_rails/single_mutate_spec.rb
|
279
|
+
- spec/mutator_rails/statistics_spec.rb
|
280
|
+
- spec/mutator_rails_spec.rb
|
281
|
+
- spec/spec_helper.rb
|
282
|
+
homepage: https://github.com/dinj-oss/mutator_rails
|
283
|
+
licenses:
|
284
|
+
- MIT
|
285
|
+
metadata: {}
|
286
|
+
post_install_message:
|
287
|
+
rdoc_options: []
|
288
|
+
require_paths:
|
289
|
+
- lib
|
290
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
291
|
+
requirements:
|
292
|
+
- - ">="
|
293
|
+
- !ruby/object:Gem::Version
|
294
|
+
version: '2.3'
|
295
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
296
|
+
requirements:
|
297
|
+
- - ">="
|
298
|
+
- !ruby/object:Gem::Version
|
299
|
+
version: 1.3.6
|
300
|
+
requirements: []
|
301
|
+
rubyforge_project:
|
302
|
+
rubygems_version: 2.5.2
|
303
|
+
signing_key:
|
304
|
+
specification_version: 4
|
305
|
+
summary: Integrate automated mutation testing into Rails.
|
306
|
+
test_files: []
|