test_launcher 2.20.0 → 2.21.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/lib/test_launcher/frameworks/minitest.rb +7 -2
- data/lib/test_launcher/search/git.rb +2 -1
- data/lib/test_launcher/version.rb +1 -1
- data/test_launcher.gemspec +1 -1
- metadata +3 -60
- data/.gitignore +0 -16
- data/Gemfile +0 -8
- data/README.md +0 -419
- data/Rakefile +0 -9
- data/test/install +0 -3
- data/test/test_helper.rb +0 -65
- data/test/test_helpers/integration_helper.rb +0 -33
- data/test/test_helpers/mock.rb +0 -59
- data/test/test_helpers/mock_searcher.rb +0 -1
- data/test/test_helpers/mocks.rb +0 -77
- data/test/test_helpers/mocks/searcher_mock.rb +0 -84
- data/test/test_launcher/cli/input_parser_test.rb +0 -79
- data/test/test_launcher/ex_unit_integration_test.rb +0 -413
- data/test/test_launcher/frameworks/implementation/test_case_test.rb +0 -73
- data/test/test_launcher/frameworks/minitest/runner_test.rb +0 -76
- data/test/test_launcher/frameworks/minitest/searcher_test.rb +0 -109
- data/test/test_launcher/frameworks/rspec/runner_test.rb +0 -83
- data/test/test_launcher/frameworks/rspec/searcher_test.rb +0 -54
- data/test/test_launcher/generic_integration_test.rb +0 -62
- data/test/test_launcher/minitest_integration_test.rb +0 -683
- data/test/test_launcher/queries/example_name_query_test.rb +0 -221
- data/test/test_launcher/queries/full_regex_query_test.rb +0 -153
- data/test/test_launcher/queries/generic_query_test.rb +0 -23
- data/test/test_launcher/queries/line_number_query_test.rb +0 -107
- data/test/test_launcher/queries/multi_path_query_test.rb +0 -126
- data/test/test_launcher/queries/path_query_test.rb +0 -192
- data/test/test_launcher/rspec_integration_test.rb +0 -574
- data/test/test_launcher/rubymine_test.rb +0 -65
- data/test/test_launcher/search/ag_test.rb +0 -42
- data/test/test_launcher/search/git_test.rb +0 -41
@@ -1,221 +0,0 @@
|
|
1
|
-
require "test_helper"
|
2
|
-
require "test_helpers/mocks"
|
3
|
-
require "test_launcher/queries"
|
4
|
-
require "test_launcher/frameworks/minitest"
|
5
|
-
|
6
|
-
module TestLauncher
|
7
|
-
module Queries
|
8
|
-
class ExampleNameQueryTest < TestCase
|
9
|
-
include DefaultMocks
|
10
|
-
|
11
|
-
def raw_searcher
|
12
|
-
@raw_searcher ||= MemorySearcher.new do |searcher|
|
13
|
-
searcher.mock_file do |f|
|
14
|
-
f.path "file_1_test.rb"
|
15
|
-
f.mtime Time.now - 3000
|
16
|
-
f.contents <<-RB
|
17
|
-
class SingleTest
|
18
|
-
def test__one_example
|
19
|
-
matches_single
|
20
|
-
end
|
21
|
-
|
22
|
-
def test__same_file_1
|
23
|
-
end
|
24
|
-
|
25
|
-
def test__same_file_2
|
26
|
-
end
|
27
|
-
|
28
|
-
def test__different_files
|
29
|
-
end
|
30
|
-
end
|
31
|
-
RB
|
32
|
-
end
|
33
|
-
|
34
|
-
searcher.mock_file do |f|
|
35
|
-
f.path "file_2_test.rb"
|
36
|
-
f.mtime Time.now
|
37
|
-
f.contents <<-RB
|
38
|
-
class MultipleMatches1Test
|
39
|
-
def test__different_files
|
40
|
-
end
|
41
|
-
end
|
42
|
-
RB
|
43
|
-
end
|
44
|
-
|
45
|
-
searcher.mock_file do |f|
|
46
|
-
f.path "multiple_matches_2_test.rb"
|
47
|
-
f.mtime Time.now
|
48
|
-
f.contents <<-RB
|
49
|
-
class MultipleMatches2Test
|
50
|
-
def test__1
|
51
|
-
multiple_matches_2
|
52
|
-
end
|
53
|
-
|
54
|
-
def test__2
|
55
|
-
multiple_matches_2
|
56
|
-
end
|
57
|
-
end
|
58
|
-
RB
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
def searcher
|
64
|
-
@searcher ||= Frameworks::Minitest::Searcher.new(raw_searcher)
|
65
|
-
end
|
66
|
-
|
67
|
-
def runner
|
68
|
-
@runner ||= MockRunner.new do |m|
|
69
|
-
|
70
|
-
m.impl :single_example do |test_case|
|
71
|
-
"single_example #{test_case.file} #{test_case.example}"
|
72
|
-
end
|
73
|
-
|
74
|
-
m.impl :multiple_examples_same_file do |test_cases|
|
75
|
-
"multiple_examples_same_file #{test_cases.first.file} #{test_cases.first.example}"
|
76
|
-
end
|
77
|
-
|
78
|
-
m.impl :multiple_files do |test_cases|
|
79
|
-
"multiple_files #{test_cases.map(&:file).join(" ")}"
|
80
|
-
end
|
81
|
-
|
82
|
-
m.impl :multiple_examples do |test_cases|
|
83
|
-
"multiple_examples #{test_cases.map(&:file).join(" ")}"
|
84
|
-
end
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
def test_command__example_not_found__returns_nil
|
89
|
-
request = MockRequest.new(
|
90
|
-
search_string: "not_found",
|
91
|
-
searcher: searcher
|
92
|
-
)
|
93
|
-
|
94
|
-
command = ExampleNameQuery.new(request, default_command_finder).command
|
95
|
-
|
96
|
-
assert_equal nil, command
|
97
|
-
end
|
98
|
-
|
99
|
-
def test_command__one_example_found
|
100
|
-
request = MockRequest.new(
|
101
|
-
search_string: "one_example",
|
102
|
-
searcher: searcher,
|
103
|
-
runner: runner,
|
104
|
-
shell: default_shell
|
105
|
-
)
|
106
|
-
|
107
|
-
command = ExampleNameQuery.new(request, default_command_finder).command
|
108
|
-
|
109
|
-
assert_equal "single_example file_1_test.rb one_example", command
|
110
|
-
end
|
111
|
-
|
112
|
-
def test_command__one_example_found__notifies
|
113
|
-
request = MockRequest.new(
|
114
|
-
search_string: "one_example",
|
115
|
-
searcher: searcher,
|
116
|
-
runner: runner,
|
117
|
-
shell: default_shell
|
118
|
-
)
|
119
|
-
|
120
|
-
command = ExampleNameQuery.new(request, default_command_finder).command
|
121
|
-
|
122
|
-
messages = [
|
123
|
-
["Found 1 example in 1 file."],
|
124
|
-
]
|
125
|
-
assert_equal messages, default_shell.recall(:notify)
|
126
|
-
end
|
127
|
-
|
128
|
-
def test_command__multiple_examples__one_file
|
129
|
-
request = MockRequest.new(
|
130
|
-
search_string: "same_file",
|
131
|
-
searcher: searcher,
|
132
|
-
runner: runner,
|
133
|
-
shell: default_shell
|
134
|
-
)
|
135
|
-
|
136
|
-
command = ExampleNameQuery.new(request, default_command_finder).command
|
137
|
-
|
138
|
-
assert_equal "multiple_examples_same_file file_1_test.rb same_file", command
|
139
|
-
end
|
140
|
-
|
141
|
-
def test_command__multiple_examples__one_file__notifies
|
142
|
-
request = MockRequest.new(
|
143
|
-
search_string: "same_file",
|
144
|
-
searcher: searcher,
|
145
|
-
runner: runner,
|
146
|
-
shell: default_shell
|
147
|
-
)
|
148
|
-
|
149
|
-
command = ExampleNameQuery.new(request, default_command_finder).command
|
150
|
-
|
151
|
-
messages = [
|
152
|
-
["Found 2 examples in 1 file."],
|
153
|
-
]
|
154
|
-
assert_equal messages, default_shell.recall(:notify)
|
155
|
-
end
|
156
|
-
|
157
|
-
def test_command__multiple_examples__multiple_files__no_all
|
158
|
-
request = MockRequest.new(
|
159
|
-
search_string: "different_files",
|
160
|
-
searcher: searcher,
|
161
|
-
runner: runner,
|
162
|
-
shell: default_shell,
|
163
|
-
run_all?: false
|
164
|
-
)
|
165
|
-
|
166
|
-
command = ExampleNameQuery.new(request, default_command_finder).command
|
167
|
-
|
168
|
-
assert_equal "single_example file_2_test.rb different_files", command
|
169
|
-
end
|
170
|
-
|
171
|
-
def test_command__multiple_examples__multiple_files__no_all__notifies
|
172
|
-
request = MockRequest.new(
|
173
|
-
search_string: "different_files",
|
174
|
-
searcher: searcher,
|
175
|
-
runner: runner,
|
176
|
-
shell: default_shell,
|
177
|
-
run_all?: false
|
178
|
-
)
|
179
|
-
|
180
|
-
command = ExampleNameQuery.new(request, default_command_finder).command
|
181
|
-
|
182
|
-
messages = [
|
183
|
-
["Found 2 examples in 2 files."],
|
184
|
-
["Running most recently edited. Run with '--all' to run all the tests."],
|
185
|
-
]
|
186
|
-
assert_equal messages, default_shell.recall(:notify)
|
187
|
-
end
|
188
|
-
|
189
|
-
def test_command__multiple_examples__multiple_files__all
|
190
|
-
request = MockRequest.new(
|
191
|
-
search_string: "different_files",
|
192
|
-
searcher: searcher,
|
193
|
-
runner: runner,
|
194
|
-
shell: default_shell,
|
195
|
-
run_all?: true
|
196
|
-
)
|
197
|
-
|
198
|
-
command = ExampleNameQuery.new(request, default_command_finder).command
|
199
|
-
|
200
|
-
assert_equal "multiple_examples file_1_test.rb file_2_test.rb", command
|
201
|
-
end
|
202
|
-
|
203
|
-
def test_command__multiple_examples__multiple_files__all__notifies
|
204
|
-
request = MockRequest.new(
|
205
|
-
search_string: "different_files",
|
206
|
-
searcher: searcher,
|
207
|
-
runner: runner,
|
208
|
-
shell: default_shell,
|
209
|
-
run_all?: true
|
210
|
-
)
|
211
|
-
|
212
|
-
command = ExampleNameQuery.new(request, default_command_finder).command
|
213
|
-
|
214
|
-
messages = [
|
215
|
-
["Found 2 examples in 2 files."],
|
216
|
-
]
|
217
|
-
assert_equal messages, default_shell.recall(:notify)
|
218
|
-
end
|
219
|
-
end
|
220
|
-
end
|
221
|
-
end
|
@@ -1,153 +0,0 @@
|
|
1
|
-
require "test_helper"
|
2
|
-
require "test_helpers/mocks"
|
3
|
-
require "test_launcher/queries"
|
4
|
-
require "test_launcher/frameworks/minitest"
|
5
|
-
|
6
|
-
module TestLauncher
|
7
|
-
module Queries
|
8
|
-
class FullRegexQueryTest < TestCase
|
9
|
-
include DefaultMocks
|
10
|
-
|
11
|
-
def raw_searcher
|
12
|
-
@raw_searcher ||= MemorySearcher.new do |searcher|
|
13
|
-
searcher.mock_file do |f|
|
14
|
-
f.path "single_test.rb"
|
15
|
-
f.contents <<-RB
|
16
|
-
class SingleTest
|
17
|
-
def test__1
|
18
|
-
matches_single
|
19
|
-
end
|
20
|
-
end
|
21
|
-
RB
|
22
|
-
end
|
23
|
-
|
24
|
-
searcher.mock_file do |f|
|
25
|
-
f.path "multiple_matches_1_test.rb"
|
26
|
-
f.mtime Time.now - 3000
|
27
|
-
f.contents <<-RB
|
28
|
-
class MultipleMatches1Test
|
29
|
-
def test__1
|
30
|
-
multiple_matches_1
|
31
|
-
end
|
32
|
-
|
33
|
-
def test__2
|
34
|
-
multiple_matches_1
|
35
|
-
end
|
36
|
-
end
|
37
|
-
RB
|
38
|
-
end
|
39
|
-
|
40
|
-
searcher.mock_file do |f|
|
41
|
-
f.path "multiple_matches_2_test.rb"
|
42
|
-
f.mtime Time.now
|
43
|
-
f.contents <<-RB
|
44
|
-
class MultipleMatches2Test
|
45
|
-
def test__1
|
46
|
-
multiple_matches_2
|
47
|
-
end
|
48
|
-
|
49
|
-
def test__2
|
50
|
-
multiple_matches_2
|
51
|
-
end
|
52
|
-
end
|
53
|
-
RB
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
def searcher
|
59
|
-
@searcher ||= Frameworks::Minitest::Searcher.new(raw_searcher)
|
60
|
-
end
|
61
|
-
|
62
|
-
def runner
|
63
|
-
@runner ||= MockRunner.new do |m|
|
64
|
-
m.impl :single_file do |test_case|
|
65
|
-
case test_case.file
|
66
|
-
when "single_test.rb"
|
67
|
-
"single_file single_test.rb"
|
68
|
-
when "multiple_matches_1_test.rb"
|
69
|
-
"single_file multiple_matches_1_test.rb"
|
70
|
-
when "multiple_matches_2_test.rb"
|
71
|
-
"single_file multiple_matches_2_test.rb"
|
72
|
-
else
|
73
|
-
raise "unmocked single_file: #{test_case.file}"
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
m.impl :multiple_files do |test_cases|
|
78
|
-
case test_cases.map(&:file)
|
79
|
-
when ["multiple_matches_1_test.rb", "multiple_matches_2_test.rb"]
|
80
|
-
"multiple_files multiple_matches_1_test.rb multiple_matches_2_test.rb"
|
81
|
-
else
|
82
|
-
raise "unmocked multiple_files: #{test_cases}"
|
83
|
-
end
|
84
|
-
end
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
def test_command__regex_not_found
|
89
|
-
request = MockRequest.new(
|
90
|
-
search_string: "not_found",
|
91
|
-
searcher: searcher
|
92
|
-
)
|
93
|
-
|
94
|
-
command = FullRegexQuery.new(request, default_command_finder).command
|
95
|
-
assert_equal nil, command
|
96
|
-
end
|
97
|
-
|
98
|
-
def test_command__single_match
|
99
|
-
request = MockRequest.new(
|
100
|
-
search_string: "single",
|
101
|
-
searcher: searcher,
|
102
|
-
runner: runner,
|
103
|
-
shell: default_shell
|
104
|
-
)
|
105
|
-
|
106
|
-
command = FullRegexQuery.new(request, default_command_finder).command
|
107
|
-
|
108
|
-
assert_equal "single_file single_test.rb", command
|
109
|
-
end
|
110
|
-
|
111
|
-
def test_command__multiple_matches_same_file
|
112
|
-
request = MockRequest.new(
|
113
|
-
search_string: "multiple_matches_1",
|
114
|
-
searcher: searcher,
|
115
|
-
runner: runner,
|
116
|
-
shell: default_shell
|
117
|
-
)
|
118
|
-
|
119
|
-
command = FullRegexQuery.new(request, default_command_finder).command
|
120
|
-
|
121
|
-
assert_equal "single_file multiple_matches_1_test.rb", command
|
122
|
-
end
|
123
|
-
|
124
|
-
def test_command__multiple_matches_different_files__no_all
|
125
|
-
request = MockRequest.new(
|
126
|
-
search_string: "multiple_matches",
|
127
|
-
searcher: searcher,
|
128
|
-
runner: runner,
|
129
|
-
shell: default_shell,
|
130
|
-
run_all?: false
|
131
|
-
)
|
132
|
-
|
133
|
-
command = FullRegexQuery.new(request, default_command_finder).command
|
134
|
-
|
135
|
-
assert_equal "single_file multiple_matches_2_test.rb", command
|
136
|
-
end
|
137
|
-
|
138
|
-
def test_command__multiple_matches_different_files__all
|
139
|
-
request = MockRequest.new(
|
140
|
-
search_string: "multiple_matches",
|
141
|
-
searcher: searcher,
|
142
|
-
runner: runner,
|
143
|
-
shell: default_shell,
|
144
|
-
run_all?: true
|
145
|
-
)
|
146
|
-
|
147
|
-
command = FullRegexQuery.new(request, default_command_finder).command
|
148
|
-
|
149
|
-
assert_equal "multiple_files multiple_matches_1_test.rb multiple_matches_2_test.rb", command
|
150
|
-
end
|
151
|
-
end
|
152
|
-
end
|
153
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require "test_helper"
|
2
|
-
require "test_helpers/mocks"
|
3
|
-
require "test_launcher/queries"
|
4
|
-
|
5
|
-
module TestLauncher
|
6
|
-
module Queries
|
7
|
-
class GenericQueryTest < TestCase
|
8
|
-
include DefaultMocks
|
9
|
-
|
10
|
-
def test__specified_name
|
11
|
-
command_finder = Mock.new(Queries::CommandFinder, specified_name: :specified_name)
|
12
|
-
|
13
|
-
assert_equal :specified_name, GenericQuery.new(MockRequest.new(example_name: "name_present", rerun?: false), command_finder).command
|
14
|
-
end
|
15
|
-
|
16
|
-
def test__example_name
|
17
|
-
command_finder = Mock.new(Queries::CommandFinder, full_search: :full_search)
|
18
|
-
|
19
|
-
assert_equal :full_search, GenericQuery.new(MockRequest.new(example_name: nil, rerun?: false), command_finder).command
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,107 +0,0 @@
|
|
1
|
-
require "test_helper"
|
2
|
-
require "test_helpers/mocks"
|
3
|
-
require "test_launcher/queries"
|
4
|
-
|
5
|
-
module TestLauncher
|
6
|
-
module Queries
|
7
|
-
class LineNumberQueryTest < TestCase
|
8
|
-
include DefaultMocks
|
9
|
-
|
10
|
-
def searcher
|
11
|
-
@searcher ||= MockSearcher.new do |m|
|
12
|
-
m.impl :by_line do |file, line_number|
|
13
|
-
case [file, line_number]
|
14
|
-
when ["not_found", 1]
|
15
|
-
[]
|
16
|
-
when ["found", 17]
|
17
|
-
[{file: "found", example_name: "test_example", line_number: 14}]
|
18
|
-
when ["found", 1]
|
19
|
-
[{file: "found"}]
|
20
|
-
when ["found", 9999]
|
21
|
-
raise "invalid line number"
|
22
|
-
when ["multiple", 1]
|
23
|
-
raise "multiple files matched with line query"
|
24
|
-
else
|
25
|
-
raise "unmocked search_string: #{file}, #{line_number}"
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
def create_mock_request(**attrs)
|
32
|
-
MockRequest.new(**attrs) do |m|
|
33
|
-
m.impl(:test_case) do |file:, example: nil, request:, line_number: nil|
|
34
|
-
case [file, example]
|
35
|
-
when ["found", nil]
|
36
|
-
whole_file_test_case
|
37
|
-
when ["found", "test_example"]
|
38
|
-
example_name_test_case
|
39
|
-
else
|
40
|
-
raise "unmocked file: #{file}"
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def whole_file_test_case
|
47
|
-
@whole_file_test_case ||= MockTestCase.new(file: "found")
|
48
|
-
end
|
49
|
-
|
50
|
-
def example_name_test_case
|
51
|
-
@example_name_test_case ||= MockTestCase.new(file: "found", example_name: "test_example")
|
52
|
-
end
|
53
|
-
|
54
|
-
def test_command__file_not_found
|
55
|
-
request = create_mock_request(
|
56
|
-
search_string: "not_found:1",
|
57
|
-
searcher: searcher
|
58
|
-
)
|
59
|
-
|
60
|
-
command = LineNumberQuery.new(request, default_command_finder).command
|
61
|
-
assert_equal nil, command
|
62
|
-
end
|
63
|
-
|
64
|
-
def test_command__search_string_does_not_have_colon
|
65
|
-
request = create_mock_request(
|
66
|
-
search_string: "not_found",
|
67
|
-
searcher: searcher
|
68
|
-
)
|
69
|
-
|
70
|
-
command = LineNumberQuery.new(request, default_command_finder).command
|
71
|
-
|
72
|
-
assert_equal nil, command
|
73
|
-
end
|
74
|
-
|
75
|
-
def test_command__file_found__line_number_not_in_example
|
76
|
-
request = create_mock_request(
|
77
|
-
search_string: "found:1",
|
78
|
-
searcher: searcher,
|
79
|
-
runner: default_runner,
|
80
|
-
shell: default_shell
|
81
|
-
)
|
82
|
-
|
83
|
-
command = LineNumberQuery.new(request, default_command_finder).command
|
84
|
-
|
85
|
-
assert_equal [[whole_file_test_case]], default_runner.recall(:by_line_number)
|
86
|
-
|
87
|
-
assert_equal "by_line_number_return", command
|
88
|
-
end
|
89
|
-
|
90
|
-
|
91
|
-
def test_command__file_found__line_number_inside_example
|
92
|
-
request = create_mock_request(
|
93
|
-
search_string: "found:17",
|
94
|
-
searcher: searcher,
|
95
|
-
runner: default_runner,
|
96
|
-
shell: default_shell
|
97
|
-
)
|
98
|
-
|
99
|
-
command = LineNumberQuery.new(request, default_command_finder).command
|
100
|
-
|
101
|
-
assert_equal [[example_name_test_case]], default_runner.recall(:by_line_number)
|
102
|
-
|
103
|
-
assert_equal "by_line_number_return", command
|
104
|
-
end
|
105
|
-
end
|
106
|
-
end
|
107
|
-
end
|