test_launcher 2.3.0 → 2.4.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 15db8103099d657fa88ed3321e03766dc28ccbc3
|
4
|
+
data.tar.gz: 49f24e6a8e3a4f886c28fcfe3193b6314d5d167d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 38c67f9eb592ab6d61a15cb2fa1710a847ce42632d4693835cb6e6c14de124c3c7b4e7da03f7c83755327d4139124d343f57d5d19a970b0afe4ce06612e5f819
|
7
|
+
data.tar.gz: 9589081ac966e5ef5894b08ec948344275e95ea4a7febe7e411459d40f58c291f91d3026f0a702aaff503bfb757f8742366b3a435d9be5bf0109f6dd68db34e9
|
data/README.md
CHANGED
@@ -194,6 +194,9 @@ Suppose you type `test_launcher thing`. It will run tests using this priority p
|
|
194
194
|
1. Any test file based on a generic search
|
195
195
|
- runs `stuff_test.rb` because it found the word `thing` inside of it
|
196
196
|
|
197
|
+
1. Finally, if the query matches against a non-test file, it will simply run that file
|
198
|
+
- runs `ruby thing.rb` because it found `thing.rb`
|
199
|
+
|
197
200
|
If your query looks like it's specifying a line number (e.g. `file_test.rb:17`), that search will be preferred.
|
198
201
|
|
199
202
|
Any time it matches multiple files, it will default to running the most recently edited file. You can append `--all` if you want to run all matching tests, even if they are in different engines/gems!
|
@@ -5,6 +5,7 @@ require "test_launcher/version"
|
|
5
5
|
require "test_launcher/frameworks/rspec"
|
6
6
|
require "test_launcher/frameworks/minitest"
|
7
7
|
require "test_launcher/frameworks/ex_unit"
|
8
|
+
require "test_launcher/frameworks/generic"
|
8
9
|
require "test_launcher/cli/options"
|
9
10
|
|
10
11
|
module TestLauncher
|
@@ -56,8 +57,10 @@ VERSION: #{TestLauncher::VERSION}
|
|
56
57
|
[Frameworks::Minitest]
|
57
58
|
elsif @options[:framework] == "ex_unit"
|
58
59
|
[Frameworks::ExUnit]
|
60
|
+
elsif @options[:framework] == "generic"
|
61
|
+
[Frameworks::Generic]
|
59
62
|
else
|
60
|
-
[Frameworks::Minitest, Frameworks::RSpec, Frameworks::ExUnit]
|
63
|
+
[Frameworks::Minitest, Frameworks::RSpec, Frameworks::ExUnit, Frameworks::Generic]
|
61
64
|
end
|
62
65
|
|
63
66
|
Options.new(
|
@@ -0,0 +1,80 @@
|
|
1
|
+
require 'shellwords'
|
2
|
+
require "test_launcher/base_error"
|
3
|
+
|
4
|
+
module TestLauncher
|
5
|
+
module Frameworks
|
6
|
+
NotSupportedError = Class.new(BaseError)
|
7
|
+
|
8
|
+
module Generic
|
9
|
+
def self.active?
|
10
|
+
true
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.test_case(*a)
|
14
|
+
TestCase.new(*a)
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.searcher(*a)
|
18
|
+
Searcher.new(*a)
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.runner(*a)
|
22
|
+
Runner.new(*a)
|
23
|
+
end
|
24
|
+
|
25
|
+
class Searcher < Base::Searcher
|
26
|
+
MultipleByLineMatches = Class.new(BaseError)
|
27
|
+
|
28
|
+
def by_line(*)
|
29
|
+
return []
|
30
|
+
end
|
31
|
+
|
32
|
+
def examples(*)
|
33
|
+
[]
|
34
|
+
end
|
35
|
+
|
36
|
+
def grep(*)
|
37
|
+
[]
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def file_name_regex
|
43
|
+
/\.rb$/
|
44
|
+
end
|
45
|
+
|
46
|
+
def file_name_pattern
|
47
|
+
"*.rb"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
class Runner < Base::Runner
|
52
|
+
def by_line_number(test_case)
|
53
|
+
raise NotSupportedError.new("You should not have hit this error. File an issue. :(")
|
54
|
+
end
|
55
|
+
|
56
|
+
def single_example(test_case, name: test_case.example, exact_match: false)
|
57
|
+
raise NotSupportedError.new("You should not have hit this error. File an issue. :(")
|
58
|
+
end
|
59
|
+
|
60
|
+
def multiple_examples_same_file(test_cases)
|
61
|
+
raise NotSupportedError.new("You should not have hit this error. File an issue. :(")
|
62
|
+
end
|
63
|
+
|
64
|
+
def multiple_examples_same_root(test_cases)
|
65
|
+
raise NotSupportedError.new("You should not have hit this error. File an issue. :(")
|
66
|
+
end
|
67
|
+
|
68
|
+
def one_or_more_files(test_cases)
|
69
|
+
%{#{test_cases.first.file_runner} #{test_cases.map(&:file).uniq.join(" ")}}
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
class TestCase < Base::TestCase
|
74
|
+
def file_runner
|
75
|
+
"ruby"
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
require "test_helpers/integration_helper"
|
3
|
+
|
4
|
+
module TestLauncher
|
5
|
+
class GenericIntegrationTest < TestCase
|
6
|
+
include IntegrationHelper
|
7
|
+
|
8
|
+
def launch(query, env: {}, searcher:, shell: shell_mock)
|
9
|
+
query += " --framework generic "
|
10
|
+
shell.reset
|
11
|
+
CLI.launch(query.split(" "), env, shell: shell, searcher: searcher)
|
12
|
+
end
|
13
|
+
|
14
|
+
def test__by_filename
|
15
|
+
searcher = MemorySearcher.new do |searcher|
|
16
|
+
searcher.mock_file do |f|
|
17
|
+
f.path "/src/test/file_1.rb"
|
18
|
+
f.contents ""
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
launch("file_1", searcher: searcher)
|
23
|
+
assert_equal "ruby /src/test/file_1.rb", shell_mock.recall_exec
|
24
|
+
end
|
25
|
+
|
26
|
+
def test__not_filename
|
27
|
+
searcher = MemorySearcher.new do |searcher|
|
28
|
+
searcher.mock_file do |f|
|
29
|
+
f.path "/src/test/file_1.rb"
|
30
|
+
f.contents "runme"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
launch("runme", searcher: searcher)
|
35
|
+
assert_equal nil, shell_mock.recall_exec
|
36
|
+
|
37
|
+
launch("file:1", searcher: searcher)
|
38
|
+
assert_equal nil, shell_mock.recall_exec
|
39
|
+
|
40
|
+
launch("/src/test/file_1.rb:1", searcher: searcher)
|
41
|
+
assert_equal nil, shell_mock.recall_exec
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: test_launcher
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pete Kinnecom
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-05-
|
11
|
+
date: 2017-05-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -60,6 +60,7 @@ files:
|
|
60
60
|
- lib/test_launcher/cli/request.rb
|
61
61
|
- lib/test_launcher/frameworks/base.rb
|
62
62
|
- lib/test_launcher/frameworks/ex_unit.rb
|
63
|
+
- lib/test_launcher/frameworks/generic.rb
|
63
64
|
- lib/test_launcher/frameworks/implementation/test_case.rb
|
64
65
|
- lib/test_launcher/frameworks/minitest.rb
|
65
66
|
- lib/test_launcher/frameworks/rspec.rb
|
@@ -88,6 +89,7 @@ files:
|
|
88
89
|
- test/test_launcher/frameworks/minitest/searcher_test.rb
|
89
90
|
- test/test_launcher/frameworks/rspec/runner_test.rb
|
90
91
|
- test/test_launcher/frameworks/rspec/searcher_test.rb
|
92
|
+
- test/test_launcher/generic_integration_test.rb
|
91
93
|
- test/test_launcher/minitest_integration_test.rb
|
92
94
|
- test/test_launcher/queries/example_name_query_test.rb
|
93
95
|
- test/test_launcher/queries/full_regex_query_test.rb
|
@@ -140,6 +142,7 @@ test_files:
|
|
140
142
|
- test/test_launcher/frameworks/minitest/searcher_test.rb
|
141
143
|
- test/test_launcher/frameworks/rspec/runner_test.rb
|
142
144
|
- test/test_launcher/frameworks/rspec/searcher_test.rb
|
145
|
+
- test/test_launcher/generic_integration_test.rb
|
143
146
|
- test/test_launcher/minitest_integration_test.rb
|
144
147
|
- test/test_launcher/queries/example_name_query_test.rb
|
145
148
|
- test/test_launcher/queries/full_regex_query_test.rb
|