lucid 0.0.6 → 0.0.7
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.
- data/HISTORY.md +13 -0
- data/lib/lucid/ast.rb +1 -0
- data/lib/lucid/ast/background.rb +11 -8
- data/lib/lucid/ast/comment.rb +6 -2
- data/lib/lucid/ast/examples.rb +8 -4
- data/lib/lucid/ast/feature.rb +9 -6
- data/lib/lucid/ast/outline_table.rb +21 -35
- data/lib/lucid/ast/scenario.rb +11 -7
- data/lib/lucid/ast/scenario_outline.rb +16 -13
- data/lib/lucid/ast/specs.rb +9 -4
- data/lib/lucid/ast/step.rb +7 -2
- data/lib/lucid/ast/step_collection.rb +6 -2
- data/lib/lucid/ast/step_invocation.rb +46 -15
- data/lib/lucid/ast/step_result.rb +34 -0
- data/lib/lucid/ast/table.rb +9 -4
- data/lib/lucid/ast/tags.rb +4 -2
- data/lib/lucid/ast/tdl_walker.rb +99 -104
- data/lib/lucid/cli/app.rb +1 -1
- data/lib/lucid/cli/configuration.rb +19 -41
- data/lib/lucid/cli/options.rb +18 -11
- data/lib/lucid/formatter/gherkin_formatter_adapter.rb +5 -4
- data/lib/lucid/formatter/html.rb +12 -12
- data/lib/lucid/formatter/progress.rb +3 -3
- data/lib/lucid/formatter/standard.rb +6 -6
- data/lib/lucid/formatter/{stepdefs.rb → testdefs.rb} +1 -1
- data/lib/lucid/formatter/usage.rb +6 -6
- data/lib/lucid/interface_rb/rb_world.rb +0 -6
- data/lib/lucid/platform.rb +1 -1
- data/lib/lucid/runtime.rb +5 -5
- metadata +6 -5
data/lib/lucid/cli/options.rb
CHANGED
@@ -17,7 +17,7 @@ module Lucid
|
|
17
17
|
"#{INDENT}listed first. If --dry-run is used the duration\n" +
|
18
18
|
"#{INDENT}is not shown, and test definitions are sorted by\n" +
|
19
19
|
"#{INDENT}file name instead."],
|
20
|
-
'
|
20
|
+
'testdefs' => ['Lucid::Formatter::Testdefs', "Prints all test definitions with their locations. Same as\n" +
|
21
21
|
"#{INDENT}the usage formatter, except that steps are not printed."],
|
22
22
|
'junit' => ['Lucid::Formatter::Junit', 'Generates a report similar to Ant+JUnit.'],
|
23
23
|
'json' => ['Lucid::Formatter::Json', 'Prints the spec as JSON.'],
|
@@ -94,6 +94,10 @@ module Lucid
|
|
94
94
|
@options[:spec_type] = type
|
95
95
|
end
|
96
96
|
|
97
|
+
opts.on("--driver-file FILE", "The file for Lucid to connect to an execution library.") do |file|
|
98
|
+
@options[:driver_file] = file
|
99
|
+
end
|
100
|
+
|
97
101
|
opts.separator ""
|
98
102
|
|
99
103
|
opts.on("-r LIBRARY|DIR", "--require LIBRARY|DIR",
|
@@ -436,6 +440,8 @@ module Lucid
|
|
436
440
|
@options[:strict] |= other_options[:strict]
|
437
441
|
@options[:dry_run] |= other_options[:dry_run]
|
438
442
|
|
443
|
+
@options[:library_path] += other_options[:library_path]
|
444
|
+
|
439
445
|
@profiles += other_options.profiles
|
440
446
|
@expanded_args += other_options.expanded_args
|
441
447
|
|
@@ -463,17 +469,18 @@ module Lucid
|
|
463
469
|
|
464
470
|
def default_options
|
465
471
|
{
|
466
|
-
:strict
|
467
|
-
:require
|
468
|
-
:dry_run
|
469
|
-
:formats
|
470
|
-
:excludes
|
472
|
+
:strict => false,
|
473
|
+
:require => [],
|
474
|
+
:dry_run => false,
|
475
|
+
:formats => [],
|
476
|
+
:excludes => [],
|
471
477
|
:tag_expressions => [],
|
472
|
-
:name_regexps
|
473
|
-
:env_vars
|
474
|
-
:diff_enabled
|
475
|
-
:spec_type
|
476
|
-
:library_path
|
478
|
+
:name_regexps => [],
|
479
|
+
:env_vars => {},
|
480
|
+
:diff_enabled => true,
|
481
|
+
:spec_type => "",
|
482
|
+
:library_path => "",
|
483
|
+
:driver_file => ""
|
477
484
|
}
|
478
485
|
end
|
479
486
|
end
|
@@ -47,9 +47,9 @@ module Lucid
|
|
47
47
|
@step_time = Time.now
|
48
48
|
end
|
49
49
|
|
50
|
-
def before_step_result(
|
51
|
-
arguments =
|
52
|
-
location = step_match.file_colon_line
|
50
|
+
def before_step_result(step_result)
|
51
|
+
arguments = step_result.step_arguments.map{|a| Gherkin::Formatter::Argument.new(a.offset, a.val)}
|
52
|
+
location = step_result.step_match.file_colon_line
|
53
53
|
match = Gherkin::Formatter::Model::Match.new(arguments, location)
|
54
54
|
if @print_empty_match
|
55
55
|
# Trick the formatter to believe that's what was printed previously so we get arg highlights on #result
|
@@ -58,9 +58,10 @@ module Lucid
|
|
58
58
|
@gf.match(match)
|
59
59
|
end
|
60
60
|
|
61
|
+
exception = step_result.exception
|
61
62
|
error_message = exception ? "#{exception.message} (#{exception.class})\n#{exception.backtrace.join("\n")}" : nil
|
62
63
|
unless @outline
|
63
|
-
@gf.result(Gherkin::Formatter::Model::Result.new(status, nil, error_message))
|
64
|
+
@gf.result(Gherkin::Formatter::Model::Result.new(step_result.status, nil, error_message))
|
64
65
|
end
|
65
66
|
end
|
66
67
|
|
data/lib/lucid/formatter/html.rb
CHANGED
@@ -214,33 +214,33 @@ module Lucid
|
|
214
214
|
move_progress
|
215
215
|
end
|
216
216
|
|
217
|
-
def before_step_result(
|
218
|
-
@step_match = step_match
|
217
|
+
def before_step_result(step_result)
|
218
|
+
@step_match = step_result.step_match
|
219
219
|
@hide_this_step = false
|
220
|
-
if exception
|
221
|
-
if @exceptions.include?(exception)
|
220
|
+
if step_result.exception
|
221
|
+
if @exceptions.include?(step_result.exception)
|
222
222
|
@hide_this_step = true
|
223
223
|
return
|
224
224
|
end
|
225
|
-
@exceptions << exception
|
225
|
+
@exceptions << step_result.exception
|
226
226
|
end
|
227
|
-
if status != :failed && @in_background ^ background
|
227
|
+
if step_result.status != :failed && @in_background ^ step_result.background
|
228
228
|
@hide_this_step = true
|
229
229
|
return
|
230
230
|
end
|
231
|
-
@status = status
|
231
|
+
@status = step_result.status
|
232
232
|
return if @hide_this_step
|
233
|
-
set_scenario_color(status)
|
234
|
-
@builder << "<li id='#{@step_id}' class='step #{status}'>"
|
233
|
+
set_scenario_color(step_result.status)
|
234
|
+
@builder << "<li id='#{@step_id}' class='step #{step_result.status}'>"
|
235
235
|
end
|
236
236
|
|
237
|
-
def after_step_result(
|
237
|
+
def after_step_result(step_result)
|
238
238
|
return if @hide_this_step
|
239
|
-
if status == :undefined
|
239
|
+
if step_result.status == :undefined
|
240
240
|
keyword = @step.actual_keyword if @step.respond_to?(:actual_keyword)
|
241
241
|
step_multiline_class = @step.multiline_arg ? @step.multiline_arg.class : nil
|
242
242
|
@builder.pre do |pre|
|
243
|
-
pre << @runtime.matcher_text(keyword,
|
243
|
+
pre << @runtime.matcher_text(keyword,step_result.step_name || '',step_result.step_multiline_class)
|
244
244
|
end
|
245
245
|
end
|
246
246
|
@builder << '</li>'
|
@@ -40,9 +40,9 @@ module Lucid
|
|
40
40
|
@exception_raised = false
|
41
41
|
end
|
42
42
|
|
43
|
-
def after_step_result(
|
44
|
-
progress(status)
|
45
|
-
@status = status
|
43
|
+
def after_step_result(step_result)
|
44
|
+
progress(step_result.status)
|
45
|
+
@status = step_result.status
|
46
46
|
end
|
47
47
|
|
48
48
|
def before_outline_table(outline_table)
|
@@ -127,20 +127,20 @@ module Lucid
|
|
127
127
|
@indent = 6
|
128
128
|
end
|
129
129
|
|
130
|
-
def before_step_result(
|
130
|
+
def before_step_result(step_result)
|
131
131
|
@hide_this_step = false
|
132
|
-
if exception
|
133
|
-
if @exceptions.include?(exception)
|
132
|
+
if step_result.exception
|
133
|
+
if @exceptions.include?(step_result.exception)
|
134
134
|
@hide_this_step = true
|
135
135
|
return
|
136
136
|
end
|
137
|
-
@exceptions << exception
|
137
|
+
@exceptions << step_result.exception
|
138
138
|
end
|
139
|
-
if status != :failed && @in_background ^ background
|
139
|
+
if step_result.status != :failed && @in_background ^ step_result.background
|
140
140
|
@hide_this_step = true
|
141
141
|
return
|
142
142
|
end
|
143
|
-
@status = status
|
143
|
+
@status = step_result.status
|
144
144
|
end
|
145
145
|
|
146
146
|
def step_name(keyword, step_match, status, source_indent, background, file_colon_line)
|
@@ -26,19 +26,19 @@ module Lucid
|
|
26
26
|
@start_time = Time.now
|
27
27
|
end
|
28
28
|
|
29
|
-
def before_step_result(
|
29
|
+
def before_step_result(step_result)
|
30
30
|
@duration = Time.now - @start_time
|
31
31
|
end
|
32
32
|
|
33
|
-
def after_step_result(
|
34
|
-
step_definition =
|
33
|
+
def after_step_result(step_result)
|
34
|
+
step_definition = step_result.step_definition
|
35
35
|
unless step_definition.nil? # nil if it's from a scenario outline
|
36
36
|
stepdef_key = StepDefKey.new(step_definition.regexp_source, step_definition.file_colon_line)
|
37
37
|
|
38
38
|
@stepdef_to_match[stepdef_key] << {
|
39
|
-
:keyword => keyword,
|
40
|
-
:step_match => step_match,
|
41
|
-
:status => status,
|
39
|
+
:keyword => step_result.keyword,
|
40
|
+
:step_match => step_result.step_match,
|
41
|
+
:status => step_result.status,
|
42
42
|
:file_colon_line => @step.file_colon_line,
|
43
43
|
:duration => @duration
|
44
44
|
}
|
@@ -77,12 +77,6 @@ module Lucid
|
|
77
77
|
@__lucid_runtime.doc_string(string_without_triple_quotes, content_type, line_offset)
|
78
78
|
end
|
79
79
|
|
80
|
-
# @deprecated Use {#puts} instead.
|
81
|
-
def announce(*messages)
|
82
|
-
STDERR.puts AnsiEscapes.failed + "WARNING: #announce is deprecated. Use #puts instead:" + caller[0] + AnsiEscapes.reset
|
83
|
-
puts(*messages)
|
84
|
-
end
|
85
|
-
|
86
80
|
# Print a message to the output.
|
87
81
|
#
|
88
82
|
# @note Lucid might surprise you with the behavior of this method. Instead
|
data/lib/lucid/platform.rb
CHANGED
@@ -2,7 +2,7 @@ require 'rbconfig'
|
|
2
2
|
|
3
3
|
module Lucid
|
4
4
|
unless defined?(Lucid::VERSION)
|
5
|
-
VERSION = '0.0.
|
5
|
+
VERSION = '0.0.7'
|
6
6
|
BINARY = File.expand_path(File.dirname(__FILE__) + '/../../bin/lucid')
|
7
7
|
LIBDIR = File.expand_path(File.dirname(__FILE__) + '/../../lib')
|
8
8
|
JRUBY = defined?(JRUBY_VERSION)
|
data/lib/lucid/runtime.rb
CHANGED
@@ -26,7 +26,7 @@ module Lucid
|
|
26
26
|
@results = Results.new(@configuration)
|
27
27
|
end
|
28
28
|
|
29
|
-
#
|
29
|
+
# Used to take an existing runtime and change its configuration.
|
30
30
|
def configure(new_configuration)
|
31
31
|
@configuration = Configuration.parse(new_configuration)
|
32
32
|
@orchestrator.configure(@configuration)
|
@@ -42,9 +42,9 @@ module Lucid
|
|
42
42
|
fire_after_configuration_hook
|
43
43
|
|
44
44
|
tdl_walker = @configuration.establish_tdl_walker(self)
|
45
|
-
self.visitor = tdl_walker
|
45
|
+
self.visitor = tdl_walker
|
46
46
|
|
47
|
-
|
47
|
+
specs.accept(tdl_walker)
|
48
48
|
end
|
49
49
|
|
50
50
|
def features_paths
|
@@ -120,13 +120,13 @@ module Lucid
|
|
120
120
|
@orchestrator.unknown_programming_language?
|
121
121
|
end
|
122
122
|
|
123
|
-
def
|
123
|
+
def write_testdefs_json
|
124
124
|
if(@configuration.testdefs)
|
125
125
|
stepdefs = []
|
126
126
|
@orchestrator.step_definitions.sort{|a,b| a.to_hash['source'] <=> a.to_hash['source']}.each do |stepdef|
|
127
127
|
stepdef_hash = stepdef.to_hash
|
128
128
|
steps = []
|
129
|
-
|
129
|
+
specs.each do |feature|
|
130
130
|
feature.feature_elements.each do |feature_element|
|
131
131
|
feature_element.raw_steps.each do |step|
|
132
132
|
args = stepdef.arguments_from(step.name)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lucid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-05-
|
12
|
+
date: 2013-05-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -171,6 +171,7 @@ files:
|
|
171
171
|
- lib/lucid/ast/step.rb
|
172
172
|
- lib/lucid/ast/step_collection.rb
|
173
173
|
- lib/lucid/ast/step_invocation.rb
|
174
|
+
- lib/lucid/ast/step_result.rb
|
174
175
|
- lib/lucid/ast/table.rb
|
175
176
|
- lib/lucid/ast/tags.rb
|
176
177
|
- lib/lucid/ast/tdl_walker.rb
|
@@ -204,9 +205,9 @@ files:
|
|
204
205
|
- lib/lucid/formatter/progress.rb
|
205
206
|
- lib/lucid/formatter/rerun.rb
|
206
207
|
- lib/lucid/formatter/standard.rb
|
207
|
-
- lib/lucid/formatter/stepdefs.rb
|
208
208
|
- lib/lucid/formatter/steps.rb
|
209
209
|
- lib/lucid/formatter/summary.rb
|
210
|
+
- lib/lucid/formatter/testdefs.rb
|
210
211
|
- lib/lucid/formatter/unicode.rb
|
211
212
|
- lib/lucid/formatter/usage.rb
|
212
213
|
- lib/lucid/generator.rb
|
@@ -259,7 +260,7 @@ homepage: https://github.com/jnyman/lucid
|
|
259
260
|
licenses:
|
260
261
|
- MIT
|
261
262
|
post_install_message: ! "\n(::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::)
|
262
|
-
(::)\n\n Thanks for installing Lucid 0.0.
|
263
|
+
(::)\n\n Thanks for installing Lucid 0.0.7.\n\n(::) (::) (::) (::) (::) (::) (::)
|
263
264
|
(::) (::) (::) (::) (::)\n "
|
264
265
|
rdoc_options:
|
265
266
|
- --charset=UTF-8
|
@@ -282,6 +283,6 @@ rubyforge_project:
|
|
282
283
|
rubygems_version: 1.8.24
|
283
284
|
signing_key:
|
284
285
|
specification_version: 3
|
285
|
-
summary: lucid-0.0.
|
286
|
+
summary: lucid-0.0.7
|
286
287
|
test_files: []
|
287
288
|
has_rdoc:
|