forked from gwen-interpreter/gwen
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
456 lines (410 loc) · 15 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
2.12.0
======
Jan 15, 2018
- Add support for loading multi valued settings from single setting contain CSV or name-value pairs or multiple
individual settings with the same prefixed and different suffixed name. If both forms are provided, then all values
are merged.
- Example:
- CSV
```
setting.values=value1=1,value2=2
```
- Prefix + suffix
```
setting.value3=3
setting.value4=4
```
2.11.4
======
Jan 9, 2018
- Fix issue gwen-interpreter/gwen-web#45 raised by @ketu4u2010: Gwen fails to handle DSL keywords in string literals
2.11.3
======
Dec 23, 2017
- Fix issue #40 reopened by @Rahul9844: support empty StepDef params in any position
2.11.2
======
Dec 21, 2017
- Fix issue #40 raised by @Rahul9844: support empty StepDef params
2.11.1
======
Nov 4, 2017
- Update scala from 2.12.3 to 2.12.4
- Update gherkin from 4.1.3 to 5.0.0
- Update scopt from 3.6.0 to 3.7.0
- Update slf4j-log4j from 1.7.22 to 1.7.25
- Update scala-logging from 3.5.0 to 3.7.2
- Update jline from 2.14.2 to 2.14.5
- Update commons-codec from 1.10 to 1.11
- Update scala-csv from 1.3.4 to 1.3.5
- Update json-path from 2.2.0 to 2.4.0
- Update joda-time from 2.9.7 to 2.9.9
2.11.0
======
Sep 26, 2017
- <step> for each <entry> in <source> delimited by "<delimiter>"
- Calls <step> for each string entry in <source> text delimited by some value
- Refactored attachments handling
2.10.1
======
Sep 21, 2017
- Improved error handling for @Examples tag
2.10.0
======
Sep 19, 2017
- Allow attributes in scoped data bindings to be overridden with blanks.
- Add new DSLs
- I capture <attribute> by javascript "<expression>"
- Eagerly captures the result of a javascript expression
- <step> if <condition>
- Calls <step> if a javascript predicate <condition> returns true (skips it otherwise)
- Feature request #34 - SQL insert, update, and delete support
- I update the <dbName> database by sql "<updateSmt>"
- Runs an insert, update, or delete statement on a database
- Number of rows affected accessible as attribute named '<dbName> rows affected'
- Make current record of data feeds available through 'data record number' attribute
- Make current record of for-each iteration available through '<element name> number' attribute
- Make current record of repeat-until iteration available through '<element name> iteration' attribute
- Fix error reporting for priority steps
- Better error reporting for
- nested settings properties that fail to resolve at load time
- javascript errors
- Implement #36 - access feature file name and scenario name
- Allow override when using the following DSL to set a property value:
- my <name> <property|setting> <is|will be> "<value>"
- Add interpolation for filepath in @Examples tag
2.9.2
=====
Sep 1, 2017
- If no elements are found by for-each step, then set status to Passed instead of Skipped
and display '-- none found --' in report line.
2.9.1
=====
Aug 31, 2017
- Allow dry run in REPL mode
- Check sql db properties on dry run
- ensure that repeat while/until steps fail correctly if the terminating condition is not satisfied before timeout
- Use filename as hyperlink in HTML report summary line if feature has no name
2.9.0
======
Aug 23, 2017
- Update Scala from 2.12.1 to 2.12.3
- Update Gherkin from 4.0.0 to 4.1.3
- Update Scopt from 3.5.0 to 3.6.0
- send errors to system error
- print REPL banner after meta load
- use warn log level for case where no features were provided
- Added support for binding SQL query using DocString syntax
- <attribute> <is|will be> defined in the <dbName> database by sql
"""
<selectStmt>
"""
2.8.0
=====
Jul 17, 2017
- Add support for DocStrings
- Evaluate all javascript expressions in anonymous function block and move to ScriptSupport class
- Add paste mode to REPL to support multiline step evaluation (steps with tables or docStrings)
- Add Gherkin language header to Gwen model
2.7.3
=====
Jul 11, 2017
- Fix fail handling where cause was not being reported correctly
2.7.2
=====
Jul 10, 2017
- Add syntax checking for DataTable tags
- Report error if Data Table tag is specified without StepDef tag
- Give steps that call other steps execution priority over all other steps or StepDefs that may have the same
structure to ensure that they are evaluated and not raised as conflicts that require renaming.
- All data table cell references must be include data record index unless in foreach step
2.7.1
=====
Jul 8, 2017
- Renamed JS methods for consistency
- Changed dry run values for consistency
2.7.0
=====
Jul 7, 2017
- PR gwen-interpreter/gwen#32 - Add support for Gherkin data tables (horizontal, vertical, and matrix forms)
- Log the results of bound value lookups at debug level
- Refactor of code to make dry run more seamless
2.6.1
=====
Jun 27, 2017
- Correct id in example rows for scenario outlines in JSON reports
- Use StringEscapeUtils from Apache Commons to escape HTML, XML, and JSON in reports where necessary
2.6.0
=====
Jun 25, 2017
- Add cucumber compliant JSON output reports
- json -f/--format option
- evaluated scenario outlines are expanded in the report (and not expanded if not evaluated)
- Expand evaluated scenario outlines in JUnit-XML reports (and do not expanded if not evaluated)
- Capture location of all gherkin nodes instead of just steps only
- Add support for binding closure functions to data scopes
2.5.0
=====
Jun 9, 2017
- Make string interpolation work with multi-line strings (use DOTALL mode in regex matcher)
- Introduce Java Scripting API (JSR 223) to support JavaScript evaluation in non web engines
- Merge common steps into default engine support class so other engines can easily inherit them
2.4.1
=====
Jun 1, 2017
- Make env REPL output more compact and readable
- Remove json-play dependency
2.4.0
=====
May 30, 2017
- Enable cntl-d in REPL for exit (issue #31 raised by @asgillet)
2.3.1
=====
May 20, 2017
- Add findEntries function to scoped data stack to enable finding entries by predicate
2.3.0
=====
Apr 11, 2017
- Add cache in feature scope for storing temporary objects (non string values)
- Add support for sourcing examples tables from CSV files in scenario outlines
- Add settings for enabling or disabling auto meta and CSV data file discovery
- gwen.auto.discover.meta (true to enable auto meta discovery, false to disable, default is true for enabled)
- gwen.auto.discover.data.csv (true to enable auto CSV data discovery, false to disable, default is true for enabled)
2.2.1
=====
Mar 31, 2017
- Only generate slideshow in report if screen shot capture is enabled
2.2.0
=====
Mar 12, 2017
- Added support for scenario outlines (see PR #29)
- You can use them inline or as StepDefs
- Examples records in outlines are expanded into scenarios during the normalisation phase
- Each example record is a hyperlink in the HTML report that expands the scenario when clicked
- Escape description lines in HTML report
2.1.0
=====
Feb 10, 2017
- Added support for binding SQL query results to attributes
- Introduced GWEN_CLASSPATH environment variable for adding external JARs to Gwen classpath
2.0.0
=====
Jan 20, 2017
- Update to Java 8 (Java 7 no longer supported)
- Update from Scala 2.11.8 to 2.12.1
- Updated following dependencies
- json-play from 2.3.9 to 2.6.0-M1
- scopt from 3.3.0 to 3.5.0
- slf4j-log4j12 from 1.7.7 to 1.7.22
- jline from 2.13 to 2.14.2
- scala-csv from 1.2.2 to 1.3.4
- scala-test from 2.2.4 to 3.0.1
- Added dependencies
- joda-time 2.9.7
- scala-logging 3.5.0
- Removed dependencies
- scala-logging-slf4j 2.1.2
1.4.3
=====
Nov 24, 2016, 9:43 AM GMT+10 (AEDT)
- Fixed issue with junit reports that caused an exception to be thrown when
the feature file being reported on is in the top level working directory.
- Move generic compare logic into core environment context
- Mix XPath, Regex, and JSON support into core environment context
1.4.2
=====
Oct 11, 2016, 9:16 PM GMT+10 (AEDT)
- Fixed play function in modal popup slideshow. Solution was to:
- add `height="100%"` to the slideshow image tag
- if the 1st frame is displayed then point the reel control to the last frame
and immediately back to 1st frame before triggering play
1.4.1
=====
Sep 14, 2016, 12:42 PM GMT+10 (AEST)
- Fix analytics and timings in reports
- Suppress hyperlink for 'Loaded' status in reports
1.4.0
=====
Sep 12, 2016, 10:37 PM GMT+10 (AEST)
- Include total elapsed time at the top of all reports
- Include start and finish times at the top of all reports
- Make failed status in detail report a hyperlink to first failed scenario
- Enhancement #26: meta imports
- to allow fine grained and explicit control over how meta is loaded
- Internally store tags in list instead of set
- Display elapsed time on report summary lines
- Do not auto discover CSV files below feature directory
- Do not treat embedded '+' literals in strings as concatenation operator
- Use flash scope to track changes made to global attributes in local scopes
- wrap long text in reports
- store atts as list of nvp tuples instaed of json
- update gherkin parser from v3.1.2 to v4.0.0
- improved stepdef lookup performance (use lazy iterator)
1.3.4
=====
Aug 17, 2016, 8:32 PM GMT+10 (AEST)
- Report ambiguous stepdef lookup errors instead of exiting interpreter
- Raise invalid property error if a property without a key is found in a
properties file
1.3.3
=====
Jul 22, 2016, 11:48 AM GMT+10 (AEST)
- Expose duration formatter in Predefs object
- Preserve order of fields when reading CSV data
- Do not evaluate StepDef if calling step fails interpolation
1.3.2
=====
Jul 18, 2016, 8:11 PM GMT+10 (AEST)
- Fix version hyperlink in report
- Update scala version from 2.11.7 to 2.11.8
1.3.1
=====
Jul 15, 2016, 11:10 PM GMT+10 (AEST)
- Wrap list of meta that is displayed in HTML detail reports with a
collapsable container that is hidden by default and can be expanded when
user clicks the 'no of meta files' hyperlink.
- Link version number in report to release notes
1.3.0
=====
Jun 21, 2016, 7:09 PM GMT+10 (AEST)
- User request #21
- Implemented ability to discover multiple meta files in directories
instead of just one
- Fix issue #23
- Raise ambigious error if a step resolves to more than one StepDef at runtime
- Fix issue #24
- Change stepdef parameter interpolation for dry run mode so that
`$<name>` becomes `$[param:name]` (otherwise it forever recurses)
- Implement enhancement #25
- Add support for passing directories to the `-m/--meta` option instead of
just files. All meta files within a specified directory will be recursively
loaded.
1.2.1
=====
May 24, 2016, 7.23 PM GMT+10 (AEST)
- Issue gwen-interpreter/gwen-web#24
Fixed tag filtering to accept tagged features and scenarios that have at
least one specified include tag and exclude all specified exclude tags. The
specified include and exclude tags are now partitioned and evaluated
separately (as per above) instead of being logically ANDed together from
left to right.
- Only dump environment on failure when in batch mode
1.2.0
=====
Apr 12, 2016, 10.01 PM GMT+10 (AEST)
- Added JSON path matching support using library: https://github.com/jayway/JsonPath
1.1.2
=====
Mar 30, 2016, 1:23 AM GMT+11 (AEDT)
- Prefix all attachment filenames with the sequence counter number
1.1.1
=====
Mar 6, 2016, 10:08 PM GMT+11 (AEDT)
- Return exit code zero when exiting REPL if no feature or meta files
were passed in.
1.1.0
=====
Feb 29, 2016, 8:50 PM GMT+11 (AEDT)
- Added support for configuring a ramp up interval (in seconds) for
staggered parallel execution ~ for user request issue #18. The
interval can be set through the `gwen.rampup.interval.seconds` setting
This setting is only applicable for parallel execution mode. If it is
not set or is set to zero, then no staggering will occur (as per default
behavior).
- Added new `gwen.report.suppress.meta` setting for controlling whether or
not meta reports should be generated with HTML reports (default value is
false). If you have a lot of meta, suppressing the meta reports can
save a lot of disk space. Enabling this setting does not suppress the
hyperlinked stepdefs in feature reports (they will always be rendered).
1.0.3
=====
Feb 11, 2016, 11:33 PM GMT+11 (AEDT)
- Do not allow StepDef names to start with keywords Given, When, Then, And or But
- throw error and immediately abort execution when not satisfied
1.0.2
=====
Feb 4, 2016, 2:10 AM GMT+11 (AEDT)
- Fixed #17 - Map null values in scoped attributes to None in getOpt calls
1.0.1
=====
Jan 26, 2016, 11:00 PM GMT+11 (AEDT)
- Resolved #15 - Use compact report attachment names
1.0.0
=====
Jan 19, 2016, 11:24 PM GMT+11 (AEDT)
First gwen release.
- Uses:
- io.cucumber gherkin3 v3.1.2
- com.typesafe.play play-json v2.3.9
- com.github.scopt scopt v3.3.0
- com.typesafe.scala-logging scala-logging-slf4j v2.1.2
- org.slf4j slf4j-log4j12 v1.7.7
- jline jline v2.13
- commons-codec commons-codec v1.10
- com.github.tototoshi scala-csv v1.2.2
- Requires:
- Java 7+
- Introduces:
- Abstract evaluation engine
- REPL console with commands:
- help
- env -a|-f "filter"
- history
- !# (history bang operator)
- Given|When|Then|And|But <step> (evaluates a step)
- exit|quit|bye
- <tab> (for tab completion)
- Batch execution
- Evaluation reports (Rich HTML and JUnit-XML)
- Slideshows in reports
- Data scopes (global, local, and user defined scopes)
- Meta features
- Composable step definitions (@StepDef) with parameters
- Serial and parallel execution
- Feature and scenario level tags (annoations)
- Static validation (--dry-run)
- Data driven execution (csv data feeds)
- System process calls
- Fail fast options
- Hybrid engine support
- String interpolation
- User level properties and meta overrides
- @Ignore tag
- Base64 encoding and decoding
- XML matching using XPath expressions
- Configuration settings:
- gwen.feature.failfast
- gwen.feature.failfast.exit
- gwen.report.slideshow.framespersecond
- gwen.report.overwrite
- log4j.configuration
- Usage and options:
```
Usage: install-dir/bin/gwen.sh|gwen.bat [options] [<features>]
[options]
--version
Prints the implementation version
--help
Prints this usage text
-b | --batch
Batch/server mode
-| | --parallel
Parallel batch execution mode)
-p <properties files> | --properties <properties files>
Comma separated list of properties file paths
-r <report directory> | --report <report directory>
Evaluation report output directory
-f <formats> | --formats <formats>
Comma separated list of report formats to produce
- Supported formats include: html,junit (default is html)
-t <tags> | --tags <tags>
Comma separated list of @include or ~@exclude tags
-n | --dry-run
Do not evaluate steps on engine (validate for correctness only)
-i <input data file> | --input-data <input data file>
Input data (CSV file with column headers)
-m <meta files> | --meta <meta files>
Comma separated list of meta file paths
[<features>]
Space separated list of feature files and/or directory paths
```