ttnt 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9947cd4256b1b4745ec7f4d215aa9c690fd48239
4
- data.tar.gz: 787357a06a7c10ec0bffecef39f835991ebf04d5
3
+ metadata.gz: 6757ad3cc408877e086c4d5f2833db4ba91bfc91
4
+ data.tar.gz: efbb968db897fb0be1f03b76c44f50da338a2f19
5
5
  SHA512:
6
- metadata.gz: 79cb9265651ac4148288f8c74cebb20e360323818fce52fb96089dc9ef0ec4478cb9f17b1fad60946adf62f6c99276e3753614c3d8daa31f686bc13c079190ae
7
- data.tar.gz: 2f7182fe104b563b933af1c28c51130ff87f6338f8d002d1053d028528e3c5a6eadb4a2bd720686edf0b2663008ffc2c3a74cf6f285c74d1bcd77130992c8ccb
6
+ metadata.gz: 443694bdcf2fc4dfc277c12b49cb7447e5dfedb4a7f32a4d4e18b14ca617eddf9eb2b77e362344a06f6c123b21d8b274f3c5abf00847c0bf9574b30e22060770
7
+ data.tar.gz: 02e06045c97fe2f63d28cdd7a06d4660ef3adf36f20976cbfaaabee8239d5e21388507ac6feb503c5ad860c7d3a13d25776bbd7d790ceeba630065dcd737a0f0
data/Gemfile CHANGED
@@ -3,6 +3,4 @@ source 'https://rubygems.org'
3
3
  # Specify your gem's dependencies in ttnt.gemspec
4
4
  gemspec
5
5
 
6
- group :development do
7
- gem "coveralls", require: false
8
- end
6
+ gem "coveralls", require: false
data/README.md CHANGED
@@ -58,29 +58,40 @@ Or install it yourself as:
58
58
 
59
59
  $ gem install ttnt
60
60
 
61
- ### Define rake tasks
61
+ ### Define Rake tasks
62
62
 
63
- You can define TTNT rake tasks by following steps:
63
+ TTNT allows you to define its tasks according to an existing `Rake::TestTask` object like:
64
64
 
65
- 1. `require 'ttnt/testtask'`
66
- 2. Define `TTNT::TestTask` when defining `Rake::TestTask`
65
+ ```ruby
66
+ require 'rake/testtask'
67
+ require 'ttnt/testtask'
67
68
 
68
- Your `Rakefile` will look like this:
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
- require 'rake/testtask'
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
- Rake::TestTask.new { |t|
75
- t.name = 'my_test_name'
76
- t.libs << 'test'
77
- t.pattern = 'test/**/*_test.rb'
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
- This will define 2 rake tasks `ttnt:my_test_name:anchor` and `ttnt:my_test_name:run` (portion of `my_test_name` depends on the name you specify for your `Rake::TestTask`).
83
- Usage for those tasks are described later in this document.
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
@@ -5,4 +5,3 @@ IFS=$'\n\t'
5
5
  bundle install
6
6
 
7
7
  # Do any other automated setup that you need to do here
8
- git submodule update --init
@@ -0,0 +1,13 @@
1
+ require 'rake'
2
+
3
+ module TTNT
4
+ class << self
5
+ def root_dir
6
+ @@root_dir ||= Rake.application.find_rakefile_location[1]
7
+ end
8
+
9
+ def root_dir=(dir)
10
+ @@root_dir = dir
11
+ end
12
+ end
13
+ end
@@ -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 from which metadata is read from.
9
- # nil means to read from current working tree. see {Storage} for more.
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!
@@ -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 file `.ttnt`. When sha is not nil, contents of the file on that commit
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 from which data should be read.
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 in section from the storage.
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
- "#{@repo.workdir}/.ttnt"
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
- @repo.lookup(@repo.lookup(@sha).tree['.ttnt'][:oid]).content
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
@@ -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 git information and {TestToCodeMapping}.
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
- @metadata = MetaData.new(repo, target_sha)
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
- # TODO: if test-to-code-mapping is not found (ttnt-anchor has not been run)
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
- diff = @target_obj ? @base_obj.diff(@target_obj) : @base_obj.diff_workdir
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
- sha = @target_obj ? @target_obj.oid : @repo.head.target_id
51
- @mapping ||= TTNT::TestToCodeMapping.new(@repo, sha)
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 `rake ttnt:test:anchor` has been run on.
96
+ # Find the commit `ttnt:anchor` has been run on.
85
97
  def find_anchored_commit
86
- @repo.lookup(@metadata['anchored_commit'])
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. see {Storage} for more.
20
+ # nil means to read from current working tree. See {Storage} for more.
21
21
  def initialize(repo, sha = nil)
22
- @repo = 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 (git repository) root.
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(@repo.workdir, '')
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?(@repo.workdir)
103
+ filename.start_with?(TTNT.root_dir)
94
104
  end
95
105
  end
96
106
 
@@ -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
- # Uses configuration from Rake::TestTask to minimize user configuration.
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 after user configuration is done
18
- def initialize(rake_testtask)
19
- @rake_testtask = rake_testtask
20
- # Since test_files is not exposed in Rake::TestTask
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
- @anchor_description = 'Generate test-to-code mapping' + (@rake_testtask.name == :test ? '' : " for #{@rake_testtask.name}")
24
- @run_description = 'Run selected tests' + (@rake_testtask.name == :test ? '' : "for #{@rake_testtask.name}")
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[@rake_testtask.pattern].compact
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 @rake_testtask.name do
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 changes
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
- args =
75
- "#{@rake_testtask.ruby_opts_string} #{@rake_testtask.run_code} " +
76
- "#{tests.to_a.join(' ')} #{@rake_testtask.option_list}"
77
- run_ruby args
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 test files file by file, and generate and save
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(@rake_testtask.verbose) do
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
- "#{@rake_testtask.ruby_opts_string}"
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
@@ -1,3 +1,3 @@
1
1
  module TTNT
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -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.0b2"
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.3
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-08-01 00:00:00.000000000 Z
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.0b2
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.0b2
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
@@ -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]}}