ttnt 0.0.3 → 0.0.4
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/Gemfile +1 -3
- data/README.md +41 -16
- data/bin/setup +0 -1
- data/lib/ttnt/internals.rb +13 -0
- data/lib/ttnt/metadata.rb +2 -2
- data/lib/ttnt/storage.rb +31 -6
- data/lib/ttnt/test_selector.rb +25 -9
- data/lib/ttnt/test_to_code_mapping.rb +17 -7
- data/lib/ttnt/testtask.rb +59 -20
- data/lib/ttnt/version.rb +1 -1
- data/ttnt.gemspec +1 -10
- metadata +5 -20
- data/.ttnt/commit_obj.txt +0 -1
- data/.ttnt/test_to_code_mapping.json +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6757ad3cc408877e086c4d5f2833db4ba91bfc91
|
4
|
+
data.tar.gz: efbb968db897fb0be1f03b76c44f50da338a2f19
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 443694bdcf2fc4dfc277c12b49cb7447e5dfedb4a7f32a4d4e18b14ca617eddf9eb2b77e362344a06f6c123b21d8b274f3c5abf00847c0bf9574b30e22060770
|
7
|
+
data.tar.gz: 02e06045c97fe2f63d28cdd7a06d4660ef3adf36f20976cbfaaabee8239d5e21388507ac6feb503c5ad860c7d3a13d25776bbd7d790ceeba630065dcd737a0f0
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -58,29 +58,40 @@ Or install it yourself as:
|
|
58
58
|
|
59
59
|
$ gem install ttnt
|
60
60
|
|
61
|
-
### Define
|
61
|
+
### Define Rake tasks
|
62
62
|
|
63
|
-
|
63
|
+
TTNT allows you to define its tasks according to an existing `Rake::TestTask` object like:
|
64
64
|
|
65
|
-
|
66
|
-
|
65
|
+
```ruby
|
66
|
+
require 'rake/testtask'
|
67
|
+
require 'ttnt/testtask'
|
67
68
|
|
68
|
-
|
69
|
+
t = Rake::TestTask.new do |t|
|
70
|
+
t.libs << 'test'
|
71
|
+
t.name = 'task_name'
|
72
|
+
end
|
69
73
|
|
74
|
+
TTNT::TestTask.new(t)
|
70
75
|
```
|
71
|
-
|
76
|
+
|
77
|
+
This will define 2 tasks: `ttnt:task_name:anchor` and `ttnt:task_name:run`. Usage for those tasks are described later in this document.
|
78
|
+
|
79
|
+
You can also instantiate a new `TTNT::TestTask` object and specify certain options like:
|
80
|
+
|
81
|
+
```ruby
|
72
82
|
require 'ttnt/testtask'
|
73
83
|
|
74
|
-
|
75
|
-
t.
|
76
|
-
t.
|
77
|
-
|
78
|
-
TTNT::TestTask.new(t)
|
79
|
-
}
|
84
|
+
TTNT::TestTask.new do |t|
|
85
|
+
t.code_files = FileList['lib/**/*.rb'] - FileList['lib/vendor/**/*.rb']
|
86
|
+
t.test_files = 'test/**/*_test.rb'
|
87
|
+
end
|
80
88
|
```
|
81
89
|
|
82
|
-
|
83
|
-
|
90
|
+
You can specify the same options as `Rake::TestTask`.
|
91
|
+
Additionally, there is an option which is specific to TTNT:
|
92
|
+
|
93
|
+
- `code_files`
|
94
|
+
- Specifies code files TTNT uses to select tests. Changes in files not listed here do not affect the test selection. Defaults to all files under the directory `Rakefile` resides.
|
84
95
|
|
85
96
|
## Requirements
|
86
97
|
|
@@ -92,7 +103,7 @@ Developed and only tested under ruby version 2.2.2.
|
|
92
103
|
|
93
104
|
If you defined TTNT rake task as described above, you can run following command to produce test-to-code mapping:
|
94
105
|
|
95
|
-
```
|
106
|
+
```sh
|
96
107
|
$ rake ttnt:my_test_name:anchor
|
97
108
|
```
|
98
109
|
|
@@ -100,10 +111,24 @@ $ rake ttnt:my_test_name:anchor
|
|
100
111
|
|
101
112
|
If you defined TTNT rake task as described above, you can run following command to run selected tests.
|
102
113
|
|
103
|
-
```
|
114
|
+
```sh
|
104
115
|
$ rake ttnt:my_test_name:run
|
105
116
|
```
|
106
117
|
|
118
|
+
#### Options
|
119
|
+
|
120
|
+
You can run test files one by one by setting `ISOLATED` environment variable:
|
121
|
+
|
122
|
+
```
|
123
|
+
$ rake ttnt:my_test_name:run ISOLATED=1
|
124
|
+
```
|
125
|
+
|
126
|
+
With isolated option, you can set `FAIL_FAST` environment variable to stop running successive tests after a test has failed:
|
127
|
+
|
128
|
+
```
|
129
|
+
$ rake ttnt:my_test_name:run ISOLATED=1 FAIL_FAST=1
|
130
|
+
```
|
131
|
+
|
107
132
|
## Current Limitations
|
108
133
|
|
109
134
|
- Test selection algorithm is not perfect yet (it may produce false-positives and false-negatives)
|
data/bin/setup
CHANGED
data/lib/ttnt/metadata.rb
CHANGED
@@ -5,8 +5,8 @@ module TTNT
|
|
5
5
|
STORAGE_SECTION = 'meta'
|
6
6
|
|
7
7
|
# @param repo [Rugged::Repository]
|
8
|
-
# @param sha [String] sha of commit
|
9
|
-
# nil means to read from current working tree.
|
8
|
+
# @param sha [String] sha of commit which metadata is read from.
|
9
|
+
# nil means to read from current working tree. See {Storage} for more.
|
10
10
|
def initialize(repo, sha = nil)
|
11
11
|
@storage = Storage.new(repo, sha)
|
12
12
|
read!
|
data/lib/ttnt/storage.rb
CHANGED
@@ -1,25 +1,28 @@
|
|
1
|
+
require 'ttnt/internals'
|
2
|
+
|
1
3
|
module TTNT
|
2
4
|
# A utility class to store TTNT data such as test-to-code mapping and metadata.
|
3
5
|
class Storage
|
4
6
|
# Initialize the storage from given repo and sha. This reads contents from
|
5
|
-
# a
|
7
|
+
# a `.ttnt` file. When sha is not nil, contents of the file on that commit
|
6
8
|
# is read. Data can be written only when sha is nil (written to current
|
7
9
|
# working tree).
|
8
10
|
#
|
9
11
|
# @param repo [Rugged::Repository]
|
10
|
-
# @param sha [String] sha of the commit
|
12
|
+
# @param sha [String] sha of the commit which data should be read from.
|
11
13
|
# nil means reading from/writing to current working tree.
|
12
14
|
def initialize(repo, sha = nil)
|
13
15
|
@repo = repo
|
14
16
|
@sha = sha
|
15
17
|
end
|
16
18
|
|
17
|
-
# Read data
|
19
|
+
# Read data from the storage in the given section.
|
18
20
|
#
|
19
21
|
# @param section [String]
|
20
22
|
# @return [Hash]
|
21
23
|
def read(section)
|
22
24
|
str = read_storage_content
|
25
|
+
|
23
26
|
if str.length > 0
|
24
27
|
JSON.parse(str)[section] || {}
|
25
28
|
else
|
@@ -27,7 +30,7 @@ module TTNT
|
|
27
30
|
end
|
28
31
|
end
|
29
32
|
|
30
|
-
# Write value to section in the storage.
|
33
|
+
# Write value to the given section in the storage.
|
31
34
|
# Locks the file so that concurrent write does not occur.
|
32
35
|
#
|
33
36
|
# @param section [String]
|
@@ -49,12 +52,34 @@ module TTNT
|
|
49
52
|
private
|
50
53
|
|
51
54
|
def filename
|
52
|
-
"#{
|
55
|
+
"#{TTNT.root_dir}/.ttnt"
|
56
|
+
end
|
57
|
+
|
58
|
+
def filename_from_repository_root
|
59
|
+
filename.gsub(@repo.workdir, '')
|
60
|
+
end
|
61
|
+
|
62
|
+
def storage_file_oid
|
63
|
+
tree = @repo.lookup(@sha).tree
|
64
|
+
paths = filename_from_repository_root.split(File::SEPARATOR)
|
65
|
+
dirs, filename = paths[0...-1], paths[-1]
|
66
|
+
dirs.each do |dir|
|
67
|
+
obj = tree[dir]
|
68
|
+
return nil unless obj
|
69
|
+
tree = @repo.lookup(obj[:oid])
|
70
|
+
end
|
71
|
+
obj = tree[filename]
|
72
|
+
return nil unless obj
|
73
|
+
obj[:oid]
|
53
74
|
end
|
54
75
|
|
55
76
|
def read_storage_content
|
56
77
|
if @sha
|
57
|
-
|
78
|
+
if oid = storage_file_oid
|
79
|
+
@repo.lookup(oid).content
|
80
|
+
else
|
81
|
+
'' # Storage file is not committed for the commit of given sha
|
82
|
+
end
|
58
83
|
else
|
59
84
|
File.exist?(filename) ? File.read(filename) : ''
|
60
85
|
end
|
data/lib/ttnt/test_selector.rb
CHANGED
@@ -4,7 +4,7 @@ require 'ttnt/metadata'
|
|
4
4
|
require 'ttnt/test_to_code_mapping'
|
5
5
|
|
6
6
|
module TTNT
|
7
|
-
# Select tests using
|
7
|
+
# Select tests using Git information and {TestToCodeMapping}.
|
8
8
|
class TestSelector
|
9
9
|
|
10
10
|
attr_reader :tests
|
@@ -15,7 +15,8 @@ module TTNT
|
|
15
15
|
# @param test_files [#include?] candidate test files
|
16
16
|
def initialize(repo, target_sha, test_files)
|
17
17
|
@repo = repo
|
18
|
-
|
18
|
+
storage_src_sha = target_sha ? target_sha : @repo.head.target_id
|
19
|
+
@metadata = MetaData.new(repo, storage_src_sha)
|
19
20
|
@target_obj = @repo.lookup(target_sha) if target_sha
|
20
21
|
|
21
22
|
# Base should be the commit `ttnt:anchor` has run on.
|
@@ -30,9 +31,17 @@ module TTNT
|
|
30
31
|
#
|
31
32
|
# @return [Set] a set of tests that might be affected by changes in base_sha...target_sha
|
32
33
|
def select_tests!
|
33
|
-
#
|
34
|
+
# select all tests if anchored commit does not exist
|
35
|
+
return Set.new(@test_files) unless @base_obj
|
36
|
+
|
34
37
|
@tests ||= Set.new
|
35
|
-
|
38
|
+
|
39
|
+
opts = {
|
40
|
+
include_untracked: true,
|
41
|
+
recurse_untracked_dirs: true
|
42
|
+
}
|
43
|
+
diff = defined?(@target_obj) ? @base_obj.diff(@target_obj, opts) : @base_obj.diff_workdir(opts)
|
44
|
+
|
36
45
|
diff.each_patch do |patch|
|
37
46
|
file = patch.delta.old_file[:path]
|
38
47
|
if test_file?(file)
|
@@ -47,8 +56,10 @@ module TTNT
|
|
47
56
|
private
|
48
57
|
|
49
58
|
def mapping
|
50
|
-
|
51
|
-
|
59
|
+
@mapping ||= begin
|
60
|
+
sha = defined?(@target_obj) ? @target_obj.oid : @repo.head.target_id
|
61
|
+
TTNT::TestToCodeMapping.new(@repo, sha)
|
62
|
+
end
|
52
63
|
end
|
53
64
|
|
54
65
|
# Select tests which are affected by the change of given patch.
|
@@ -59,6 +70,7 @@ module TTNT
|
|
59
70
|
target_lines = Set.new
|
60
71
|
file = patch.delta.old_file[:path]
|
61
72
|
prev_line = nil
|
73
|
+
|
62
74
|
patch.each_hunk do |hunk|
|
63
75
|
hunk.each_line do |line|
|
64
76
|
case line.line_origin
|
@@ -81,12 +93,16 @@ module TTNT
|
|
81
93
|
end
|
82
94
|
end
|
83
95
|
|
84
|
-
# Find the commit `
|
96
|
+
# Find the commit `ttnt:anchor` has been run on.
|
85
97
|
def find_anchored_commit
|
86
|
-
@
|
98
|
+
if @metadata['anchored_commit']
|
99
|
+
@repo.lookup(@metadata['anchored_commit'])
|
100
|
+
else
|
101
|
+
nil
|
102
|
+
end
|
87
103
|
end
|
88
104
|
|
89
|
-
# Check if given file is a test file.
|
105
|
+
# Check if the given file is a test file.
|
90
106
|
#
|
91
107
|
# @param filename [String]
|
92
108
|
def test_file?(filename)
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'ttnt/internals'
|
1
2
|
require 'ttnt/storage'
|
2
3
|
require 'rugged'
|
3
4
|
require 'json'
|
@@ -15,14 +16,12 @@ module TTNT
|
|
15
16
|
attr_reader :mapping
|
16
17
|
|
17
18
|
# @param repo [Rugged::Reposiotry] repository to save test-to-code mapping
|
18
|
-
# (only repo.workdir is used to determine where to save the mapping file)
|
19
19
|
# @param sha [String] sha of commit from which mapping is read.
|
20
|
-
# nil means to read from current working tree.
|
20
|
+
# nil means to read from current working tree. See {Storage} for more.
|
21
21
|
def initialize(repo, sha = nil)
|
22
|
-
@repo
|
22
|
+
@repo = repo || raise('Not in a git repository')
|
23
23
|
@storage = Storage.new(repo, sha)
|
24
24
|
read!
|
25
|
-
raise 'Not in a git repository' unless @repo
|
26
25
|
end
|
27
26
|
|
28
27
|
# Append the new mapping to test-to-code mapping file.
|
@@ -64,14 +63,25 @@ module TTNT
|
|
64
63
|
tests
|
65
64
|
end
|
66
65
|
|
66
|
+
# Select (filter) code files from mapping by given file names.
|
67
|
+
#
|
68
|
+
# @param code_files [#include?] code file names to filter
|
69
|
+
def select_code_files!(code_files)
|
70
|
+
@mapping.map do |test, spectra|
|
71
|
+
spectra.select! do |code, lines|
|
72
|
+
code_files.include?(code)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
67
77
|
private
|
68
78
|
|
69
|
-
# Convert absolute path to relative path from the project (
|
79
|
+
# Convert absolute path to relative path from the project (Git repository) root.
|
70
80
|
#
|
71
81
|
# @param file [String] file name (absolute path)
|
72
82
|
# @return [String] normalized file path
|
73
83
|
def normalized_path(file)
|
74
|
-
File.expand_path(file).sub(
|
84
|
+
File.expand_path(file).sub("#{TTNT.root_dir}/", '')
|
75
85
|
end
|
76
86
|
|
77
87
|
# Normalize all file names in a spectra.
|
@@ -90,7 +100,7 @@ module TTNT
|
|
90
100
|
# @return [Hash] spectra with only files inside the target project
|
91
101
|
def select_project_files(spectra)
|
92
102
|
spectra.select do |filename, lines|
|
93
|
-
filename.start_with?(
|
103
|
+
filename.start_with?(TTNT.root_dir)
|
94
104
|
end
|
95
105
|
end
|
96
106
|
|
data/lib/ttnt/testtask.rb
CHANGED
@@ -1,34 +1,57 @@
|
|
1
1
|
require 'rugged'
|
2
|
-
require 'rake'
|
2
|
+
require 'rake/testtask'
|
3
3
|
require 'ttnt/test_selector'
|
4
4
|
|
5
5
|
module TTNT
|
6
6
|
# TTNT version of Rake::TestTask.
|
7
|
-
#
|
7
|
+
#
|
8
|
+
# You can use the configuration from a Rake::TestTask to minimize user
|
9
|
+
# configuration.
|
10
|
+
#
|
8
11
|
# Defines TTNT related rake tasks when instantiated.
|
9
12
|
class TestTask
|
10
13
|
include Rake::DSL
|
11
14
|
|
12
|
-
# An instance of `Rake::TestTask` passed when TTNT::TestTask is initialized
|
13
15
|
attr_accessor :rake_testtask
|
16
|
+
attr_reader :code_files, :test_files
|
14
17
|
|
15
18
|
# Create an instance of TTNT::TestTask and define TTNT rake tasks.
|
16
19
|
#
|
17
|
-
# @param rake_testtask [Rake::TestTask] an instance of Rake::TestTask
|
18
|
-
|
19
|
-
|
20
|
-
|
20
|
+
# @param rake_testtask [Rake::TestTask] an instance of Rake::TestTask
|
21
|
+
# after user configuration is done
|
22
|
+
def initialize(rake_testtask = nil)
|
23
|
+
@rake_testtask = rake_testtask || Rake::TestTask.new
|
24
|
+
|
25
|
+
# There's no `test_files` method so we can't delegate it
|
26
|
+
# to the internal task through `method_missing`.
|
21
27
|
@test_files = @rake_testtask.instance_variable_get('@test_files')
|
22
28
|
|
23
|
-
|
24
|
-
|
29
|
+
yield self if block_given?
|
30
|
+
|
31
|
+
@anchor_description = 'Generate test-to-code mapping' + (name == :test ? '' : " for #{name}")
|
32
|
+
@run_description = 'Run selected tests' + (name = :test ? '' : " for #{name}")
|
25
33
|
define_tasks
|
26
34
|
end
|
27
35
|
|
36
|
+
# Delegate missing methods to the internal task
|
37
|
+
# so we can override the defaults during the
|
38
|
+
# block execution.
|
39
|
+
def method_missing(method, *args, &block)
|
40
|
+
@rake_testtask.public_send(method, *args, &block)
|
41
|
+
end
|
42
|
+
|
43
|
+
def code_files=(files)
|
44
|
+
@code_files = files.kind_of?(String) ? FileList[files] : files
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_files=(files)
|
48
|
+
@test_files = files.kind_of?(String) ? FileList[files] : files
|
49
|
+
end
|
50
|
+
|
28
51
|
# Returns array of test file names.
|
29
52
|
# Unlike Rake::TestTask#file_list, patterns are expanded.
|
30
53
|
def expanded_file_list
|
31
|
-
test_files = Rake::FileList[
|
54
|
+
test_files = Rake::FileList[pattern].compact
|
32
55
|
test_files += @test_files.to_a if @test_files
|
33
56
|
test_files
|
34
57
|
end
|
@@ -49,15 +72,15 @@ module TTNT
|
|
49
72
|
# Task definitions are taken from Rake::TestTask
|
50
73
|
# https://github.com/ruby/rake/blob/e644af3/lib/rake/testtask.rb#L98-L112
|
51
74
|
namespace :ttnt do
|
52
|
-
namespace
|
75
|
+
namespace name do
|
53
76
|
define_run_task
|
54
77
|
define_anchor_task
|
55
78
|
end
|
56
79
|
end
|
57
80
|
end
|
58
81
|
|
59
|
-
# Define a task which runs only tests which might have affected from
|
60
|
-
# between anchored commit and TARGET_SHA.
|
82
|
+
# Define a task which runs only tests which might have been affected from
|
83
|
+
# changes between anchored commit and TARGET_SHA.
|
61
84
|
#
|
62
85
|
# TARGET_SHA can be specified as an environment variable (defaults to HEAD).
|
63
86
|
#
|
@@ -68,18 +91,27 @@ module TTNT
|
|
68
91
|
target_sha = ENV['TARGET_SHA']
|
69
92
|
ts = TTNT::TestSelector.new(repo, target_sha, expanded_file_list)
|
70
93
|
tests = ts.select_tests!
|
94
|
+
|
71
95
|
if tests.empty?
|
72
96
|
STDERR.puts 'No test selected.'
|
73
97
|
else
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
98
|
+
if ENV['ISOLATED']
|
99
|
+
tests.each do |test|
|
100
|
+
args = "#{ruby_opts_string} #{test} #{option_list}"
|
101
|
+
run_ruby args
|
102
|
+
break if @failed && ENV['FAIL_FAST']
|
103
|
+
end
|
104
|
+
else
|
105
|
+
args =
|
106
|
+
"#{ruby_opts_string} #{run_code} " +
|
107
|
+
"#{tests.to_a.join(' ')} #{option_list}"
|
108
|
+
run_ruby args
|
109
|
+
end
|
78
110
|
end
|
79
111
|
end
|
80
112
|
end
|
81
113
|
|
82
|
-
# Define a task which runs
|
114
|
+
# Define a task which runs tests file by file, and generate and save
|
83
115
|
# test-to-code mapping.
|
84
116
|
#
|
85
117
|
# @return [void]
|
@@ -91,17 +123,23 @@ module TTNT
|
|
91
123
|
# See test/test_helper.rb
|
92
124
|
ENV['ANCHOR_TASK'] = '1'
|
93
125
|
|
94
|
-
Rake::FileUtilsExt.verbose(
|
126
|
+
Rake::FileUtilsExt.verbose(verbose) do
|
95
127
|
# Make it possible to require files in this gem
|
96
128
|
gem_root = File.expand_path('../..', __FILE__)
|
97
129
|
args =
|
98
130
|
"-I#{gem_root} -r ttnt/anchor " +
|
99
|
-
"#{
|
131
|
+
"#{ruby_opts_string}"
|
100
132
|
|
101
133
|
expanded_file_list.each do |test_file|
|
102
134
|
run_ruby "#{args} #{test_file}"
|
103
135
|
end
|
104
136
|
end
|
137
|
+
|
138
|
+
if @code_files
|
139
|
+
mapping = TestToCodeMapping.new(repo)
|
140
|
+
mapping.select_code_files!(@code_files)
|
141
|
+
mapping.write!
|
142
|
+
end
|
105
143
|
end
|
106
144
|
end
|
107
145
|
|
@@ -110,6 +148,7 @@ module TTNT
|
|
110
148
|
# @param args [String] argument to pass to ruby
|
111
149
|
def run_ruby(args)
|
112
150
|
ruby "#{args}" do |ok, status|
|
151
|
+
@failed = true if !ok
|
113
152
|
if !ok && status.respond_to?(:signaled?) && status.signaled?
|
114
153
|
raise SignalException.new(status.termsig)
|
115
154
|
end
|
data/lib/ttnt/version.rb
CHANGED
data/ttnt.gemspec
CHANGED
@@ -14,26 +14,17 @@ Gem::Specification.new do |spec|
|
|
14
14
|
spec.homepage = "http://github.com/Genki-S/ttnt"
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
17
|
-
# Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
|
18
|
-
# delete this section to allow pushing this gem to any host.
|
19
|
-
# if spec.respond_to?(:metadata)
|
20
|
-
# spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
|
21
|
-
# else
|
22
|
-
# raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
|
23
|
-
# end
|
24
|
-
|
25
17
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
26
18
|
spec.bindir = "exe"
|
27
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
28
20
|
spec.require_paths = ["lib"]
|
29
21
|
|
30
|
-
spec.add_dependency "rugged", "0.23.
|
22
|
+
spec.add_dependency "rugged", "0.23.1"
|
31
23
|
spec.add_dependency "json", "1.8.3"
|
32
24
|
|
33
25
|
spec.add_development_dependency "bundler", "~> 1.10"
|
34
26
|
spec.add_development_dependency "rake", "~> 10.0"
|
35
27
|
spec.add_development_dependency "minitest"
|
36
|
-
spec.add_development_dependency "coveralls"
|
37
28
|
spec.add_development_dependency "yard"
|
38
29
|
|
39
30
|
# Pry
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ttnt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Genki Sugimoto
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-09-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rugged
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.23.
|
19
|
+
version: 0.23.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.23.
|
26
|
+
version: 0.23.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: json
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,20 +80,6 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: coveralls
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
84
|
name: yard
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -201,8 +187,6 @@ extra_rdoc_files: []
|
|
201
187
|
files:
|
202
188
|
- ".gitignore"
|
203
189
|
- ".travis.yml"
|
204
|
-
- ".ttnt/commit_obj.txt"
|
205
|
-
- ".ttnt/test_to_code_mapping.json"
|
206
190
|
- ".yardopts"
|
207
191
|
- CODE_OF_CONDUCT.md
|
208
192
|
- Gemfile
|
@@ -213,6 +197,7 @@ files:
|
|
213
197
|
- bin/setup
|
214
198
|
- lib/ttnt.rb
|
215
199
|
- lib/ttnt/anchor.rb
|
200
|
+
- lib/ttnt/internals.rb
|
216
201
|
- lib/ttnt/metadata.rb
|
217
202
|
- lib/ttnt/storage.rb
|
218
203
|
- lib/ttnt/test_selector.rb
|
data/.ttnt/commit_obj.txt
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
8b4bac9f164b6389d657f4c1de100dccfc245651
|
@@ -1 +0,0 @@
|
|
1
|
-
{"test/fixtures/repositories/fizzbuzz/test/buzz_test.rb":{"lib/ttnt/version.rb":[1,2],"test/fixtures/repositories/fizzbuzz/lib/fizzbuzz.rb":[1,2,4,6,7]},"test/fixtures/repositories/fizzbuzz/test/fizz_test.rb":{"lib/ttnt/version.rb":[1,2],"test/fixtures/repositories/fizzbuzz/lib/fizzbuzz.rb":[1,2,4,5]},"test/fixtures/repositories/fizzbuzz/test/fizzbuzz_test.rb":{"lib/ttnt/version.rb":[1,2],"test/fixtures/repositories/fizzbuzz/lib/fizzbuzz.rb":[1,2,3]},"test/fixtures/repositories/fizzbuzz/test/non_fizzbuzz_test.rb":{"lib/ttnt/version.rb":[1,2],"test/fixtures/repositories/fizzbuzz/lib/fizzbuzz.rb":[1,2,4,6,9]},"test/lib/tasks_test.rb":{"lib/ttnt/version.rb":[1,2],"test/test_helper.rb":[1,2,4,6,7,8,10,14,18,20],"lib/ttnt.rb":[1,3],"lib/ttnt/tasks.rb":[1,2,3,4,5,8,9,10,12,13,16,17,18,19,35,36,56],"lib/ttnt/testtask.rb":[1,2,3,5,9,21,22,24,26],"lib/ttnt/test_selector.rb":[1,2,3,5,6,7,18]},"test/lib/test_selector_test.rb":{"lib/ttnt/version.rb":[1,2],"test/test_helper.rb":[1,2,4,6,7,8,10,11,14,15,18,20,21,22,23,24,25,26,28],"lib/ttnt.rb":[1,3],"lib/ttnt/test_selector.rb":[1,2,3,5,6,7,8,9,13,14,15,18,19,20,23,24,25,26,28,29,33,35,42]},"test/lib/test_to_code_mapping_test.rb":{"lib/ttnt/version.rb":[1,2],"test/test_helper.rb":[1,2,4,6,7,8,10,11,14,15,18,20,21,22,23,24,25,26,28],"lib/ttnt.rb":[1,3]},"test/lib/testtask_test.rb":{"lib/ttnt/version.rb":[1,2],"test/test_helper.rb":[1,2,4,6,7,8,10,14,18,20],"lib/ttnt.rb":[1,3],"lib/ttnt/testtask.rb":[1,2,3,5,6,9,21,22,24,26,27,28,29,33,34]},"test/ttnt_test.rb":{"lib/ttnt/version.rb":[1,2],"test/test_helper.rb":[1,2,4,6,7,8,10,14,18,20],"lib/ttnt.rb":[1,3]}}
|