-
-
Notifications
You must be signed in to change notification settings - Fork 8
/
CHANGELOG
2709 lines (2377 loc) · 86.9 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
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
4.1.2
=====
27 December 2024
- Update dependencies
- Update scala from v3.5.2 to v3.6.2
- Update gherkin from v30.0.0 to v30.0.4
- Update jline from v3.27.1 to v3.28.0
- Update logback-core from v1.5.12 to v1.5.15
- Update commons-text from v1.12.0 to v1.13.0
- Update jackson-databind from v2.18.1 to v2.18.2
4.1.1
=====
23 December 2024
- Revert:
- Do not honor `@Try` annotation in dry run mode when a reference is invalid
4.1.0
=====
19 December 2024
- Add support for masking input data fields
- Ensure masked fields are unmasked when evaluating javascript
- Added DSLs
- `<step> <while|until> <name> is[ not] <blank|empty>`
- `<step> <while|until> <name> is[ not] "<value>"`
- `<step> <while|until> <name> <match> "<expression>"`
- `<step> <while|until> <name> does not <match> "<expression>"`
- Do not honor `@Try` annotation in dry run mode when a reference is invalid
4.0.3
=====
10 December 2024
- Do not check step rules when resolving guard references in dry runs
4.0.2
=====
10 December 2024
- Resolve guard references in dry runs
4.0.1
=====
15 November 2024
- Load associative meta after common meta
4.0.0
=====
15 November 2024
- Introduce profiles to support multiple launch configurations
- `-p|--profile` option
- Internal engine enhancements
- Replace redundant multi scoped data caches with one single scoped cache
- Manage settings internally without exposing them as system properties
- Manage implicits at lifecycle level using boundary level caching
- Require Java 17+ instead of Java 11+
- Use logback instead of log4j for logging
- Support `empty` literal in DSLs wherever `blank` is accepted
- Make all input data read only by default
- Add `--repl` option to open REPL regardless of batch and feature options
- Change ignore placeholder syntax in template matcher from `!{}` to `@{*}`
- Add `@{**}` placeholder to template matcher to support ignoring multiple lines
- Print gwen launch arguments on startup
- Synchronise system process bindings when resolving value from output stream
- Do not permit scope attribute on results file configuration when logging with annoation or DSL
- Only log results file records if results format is specified in launch options
- Skip logging to result file if the scope or status don't match
- and disable calling step when logged via DSL
- Log unresolved field value if interpolation fails during result file logging
- Support relative file locations in `@Import` and `@Examples` annotations
- Load all associative meta if features are specified with `--repl` option
- Auto discover associative meta only
- Update dependencies
- Update scala from v3.5.0 to v3.5.2
- Update gherkin from v29.0.0 to v30.0.0
- Update jline from v3.26.3 to v3.27.1
- Update logback-core from v1.5.9 to v1.5.12
- Update logback-classic from v1.5.9 to v1.5.12
- Update jackson-databind from v2.17.2 to v2.18.1
- Add settings(s):
- `gwen.input.data.readOnly`
- Add implicit variable(s):
- `gwen.profile.name`
- Add environment variable(s)
- `GWEN_PROFILE`
- Add DSL step(s):
- `I attach "<filepath>"`
- For attaching files to Gwen reports (where the name of the attachment will be the name of the file)
- `I log record to <resultsFileId> file`
- For explicitly logging records to configured results files
- Raise deprecations as errors by default instead of logging them as warnings
| Setting | Old default | New default |
| :-------------------------- | :---------: | :---------: |
| `gwen.logLevel.deprecations`| `warn` | `error` |
- | Deprecated Settings | Use this instead |
| :--------------------------- | :----------------------------- |
| `gwen.cli.options.batch` | `gwen.launch.options.batch` |
| `gwen.cli.options.format` | `gwen.launch.options.format` |
| `gwen.cli.options.inputData` | `gwen.launch.options.inputData`|
| `gwen.cli.options.dryRun` | `gwen.launch.options.dryRun` |
| `gwen.cli.options.features` | `gwen.launch.options.features` |
| `gwen.cli.options.parallel` | `gwen.launch.options.parallel` |
| `gwen.cli.options.meta` | `gwen.launch.options.meta` |
| `gwen.cli.options.report` | `gwen.launch.options.report` |
| `gwen.cli.options.tags` | `gwen.launch.options.tags` |
| Removed Settings | Use this instead |
| :----------------------------- | :--------------------------|
| `gwen.auto.discover.data.csv` | `-i|--input` launch option |
| `gwen.auto.discover.data.json` | `-i|--input` launch option |
| `gwen.auto.discover.meta` | `-m|--meta` launch option |
| `gwen.associative.meta` | This is now always on |
- | Deprecated Implicit values | Use this instead |
| :------------------------------------ | :-------------------------------------------- |
| `gwen.eval.status.keyword` | `gwen.feature.eval.status.keyword` |
| `gwen.eval.status.keyword.upperCased` | `gwen.feature.eval.status.keyword.upperCased` |
| `gwen.eval.status.keyword.lowerCased` | `gwen.feature.eval.status.keyword.lowerCased` |
| `gwen.eval.status.keyword.isPassed` | `gwen.feature.eval.status.keyword.isPassed` |
| `gwen.eval.status.keyword.isFailed` | `gwen.feature.eval.status.keyword.isFailed` |
| `gwen.eval.status.message` | `gwen.feature.eval.status.message` |
| `gwen.eval.status.message.escaped` | `gwen.feature.eval.status.message.escaped` |
| `gwen.eval.status.message.csvEscaped` | `gwen.feature.eval.status.message.csvEscaped` |
| `gwen.eval.duration` | `gwen.feature.eval.duration` |
| `gwen.eval.duration.msecs` | `gwen.feature.eval.duration.msecs` |
| `gwen.eval.duration.secs` | `gwen.feature.eval.duration.secs` |
| `data record number` | `gwen.data.record.number` |
| `data.record.number` | `gwen.data.record.number` |
| `data.record.index` | `gwen.data.record.index` |
| `record.number` | `gwen.table.record.number` |
| `record.index` | `gwen.table.record.index` |
| `iteration.number` | `gwen.iteration.number` |
| `iteration.index` | `gwen.iteration.index` |
- Drop deprecated features:
- Gwen Workspaces warning
- `-p|--properties` option
- Report portal integration
- Matrix tables
- Core DSL steps
- `I wait <duration> second[s] when <element> is <actioned>`
- `I wait until <condition> when <element> is <actioned>`
- Core DSL steps in favour of base step with `@Timeout` and `@Delay` annotations
- `<step> <until|while> <condition> using <delay> <delayUnit> delay`
- `<step> <until|while> <condition> using <timeout> <timeoutUnit> timeout`
- `<step> <until|while> <condition> using <delay> <delayUnit> delay and <timeout> <timeoutUnit> timeout`
- `<step> <until|while> <condition> using no delay and <timeout> <timeoutUnit> timeout`
- `<step> <until|while> <condition> using no delay`
- `<step> <until|while> <condition> using no delay and <timeout> <timeoutUnit> timeout`
3.66.0
======
9 October 2024
- Add `results` report format option for declarative CSV reporting
- Introduce `@Results` annotation to support logging CSV results at any node level
- Improved error handling and reporting
- Add implicit variables:
- `gwen.feature.displayName`
- `gwen.feature.eval.started`
- `gwen.feature.eval.finished`
- `gwen.rule.eval.started`
- `gwen.rule.eval.finished`
- `gwen.scenario.displayName`
- `gwen.scenario.eval.started`
- `gwen.scenario.eval.finished`
- `gwen.stepDef.displayName`
- `gwen.stepDef.eval.started`
- `gwen.stepDef.eval.finished`
- `gwen.examples.name`
- `gwen.examples.eval.start.msecs`
- `gwen.examples.eval.started`
- `gwen.examples.eval.finished`
- `gwen.examples.eval.status.keyword`
3.65.0
======
26 September 2024
- Surround filename in file compare error messages with single quotes instead of double quotes
- Introduce new implicit attribute:
- `gwen.eval.status.message.csvEscaped` = CSV escaped equivalent of `gwen.eval.status.message`
3.64.0
======
23 September 2024
- Add file based DSL steps
- `<step> if "<filepath>" file[ not] exists`
- `<step> if "<filepath>" file does not exist`
- `<step> if <filepathRef file>[ not] exists`
- `<step> if <filepathRef file> does not exist`
- `<step> if "<filepath>" file is[ not] empty`
- `<step> if <filepathRef file> is[ not] empty`
- `<step> <until|while> "<filepath>" file[ not] exists`
- `<step> <until|while> "<filepath>" file does not exist`
- `<step> <until|while> <filepathRef file>[ not] exists`
- `<step> <until|while> <filepathRef file> does not exist`
- `<step> <until|while> "<filepath>" file is[ not] empty`
- `<step> <until|while> <filepathRef file> is[ not] empty`
- `I wait until "<filepath>" file[ not] exists`
- `I wait until "<filepath>" file does not exist`
- `I wait until <filepathRef file>[ not] exists`
- `I wait until <filepathRef file> does not exist`
- `I wait until "<filepath>" file is[ not] empty`
- `I wait until <filepathRef file> is[ not] empty`
- `"<filepath>" file should[ not] exist`
- `<filepathRef file> should[ not] exist`
- `"<filepath>" file should[ not] be empty`
- `<filepathRef file> should[ not] be empty`
3.63.2
======
20 September 2024
- Interpolate step level tags
- Report deprecation error even if step contains `@Try`
3.63.1
======
19 September 2024
- Fix deprecation msg
3.63.0
======
19 September 2024
- Introduce `gwen.logLevel.deprecations` to control how deprecations are reported.
- Supported values include:
- `warn` to log deprecations as warnings (default)
- `error` to raise and report deprecations as errors
- `none` to suppress logging or reporting of deprecation messages (no operation)
3.62.0
======
18 September 2024
- Introduce `@Timeout` and `@Delay` annotations for overriding timeouts and delays on wait, until/while, for-each and element assertion DSLs
- Deprecate all DSLs that specify delay or timeout in favor of new Wait and Delay annotations
- Update dependencies
- Update scala from v3.4.2 to v3.5.0
- Update gherkin from v28.0.0 to v29.0.0
- Update log4j-slf4j-impl from v2.23.1 to v2.24.0
- Update scala-csv from v1.4.1 to v2.0.0
- Update commons-model from v5.11.1 to v5.12.0
- Update pdfbox from v3.0.2 to v3.0.3
- Update pdfbox-io from v3.0.2 to v3.0.3
- Update guava from v33.2.1-jre to v33.3.0-jre
3.61.7
======
2 September 2024
- Detect and report multi-line input data field names as errors
3.61.6
======
28 August 2024
- Report malformed data file error when an input data file fails to parse
3.61.5
======
27 August 2024
- Fix JS function calls with multiline string arguments
3.61.4
======
18 August 2024
- Deprecate report portal integration
3.61.3
======
15 August 2024
- Remove unnecessary logging of features filtered by tags
3.61.2
======
20 July 2024
- Update dependencies
- Update scala from v3.4.1 to v3.4.2
- Update jline from v3.26.1 to v3.26.3
- Update commons-codec from v1.17.0 to v1.17.1
- Update commons-text from v1.11.0 to v1.12.0
- Update scala-csv from v1.3.10 to v1.4.1
- Update jackson-databind from v2.17.1 to v2.17.2
- Update guava from v33.2.0-jre to v33.2.1-jre
3.61.1
======
9 July 2024
- Use `ISO-8859-1` encoding if text files cannot be read using `UTF-8`
3.61.0
======
9 July 2024
- Add DSL to read in file using a given character encoding
- `<name> is defined by <encoding> file "<filepath>"`
3.60.1
======
9 July 2024
- Fix `gwen.eval.status.message` implicit
3.60.0
======
8 July 2024
- Fix context cloning and Synchronized StepDefs for parallel outline examples
- Replace flash scope with scope reference
- Set transparent background on HTML report dropdowns
- Introduce implicit feature, rule, scenario and StepDef level scopes
3.59.0
======
3 Jul 2024
- Introduce `Parallel` annotation on outline examples
- Cannot be used in a nested manner (an error will be raised on any such detection)
- Effective only when Gwen is invoked without the `--parallel` option (i.e: when no other parallel execution is taking place). It will be implicitly removed otherwise.
- Added implicit value `gwen.feature.language`
3.58.2
======
24 Jun 2024
- Add implicit values for capturing evaluation duration in seconds
- `gwen.eval.duration.secs` - the formatted duration (eg: 23s)
3.58.1
======
22 Jun 2024
- Fix implicit duration values for scenario level state
3.58.0
======
22 Jun 2024
- Add implicit values for capturing evaluation duration
- `gwen.eval.duration` - the formatted duration (eg: 1s 234ms)
- `gwen.eval.duration.msecs` - the duration in milliseconds (eg: 1234)
3.57.1
======
19 Jun 2024
- Fix ordering of x is "y" DSL
3.57.0
======
18 Jun 2024
- Add `@Masked` annotation to mask dynamically evaluated data bound by the following DSLs. If specified, then returned data will be masked in all logs and outputs.
- `<name> is defined by <javascript|js> "<expression>"`
- `<name> is defined by <javascriptRef> applied to "<argument>"`
- `<name> is defined by <javascriptRef> applied to "<arguments>" delimited by "<delimiter>"`
- `<name> is defined by system process "<process>"`
- `<name> is defined by system process "<process>" delimited by "<delimiter>"`
- `<name> is defined by unix system process "<process>"`
- `<name> is defined by the <text|node|nodeset> in <xmlRef> by xpath "<expression>"`
- `<name> is defined in <textRef> by regex "<expression>"`
- `<name> is defined in <jsonRef> by json path "<expression>"`
- `<name> is defined in the <dbName> database by sql "<selectStmt>"`
3.56.0
======
13 Jun 2024
- Json data bindings for nested array loops
- Simplified DSL for looping over JSON arrays
- `<step> for each <entry> in <arrayRef> array`
3.55.0
======
12 Jun 2024
- Enhanced support for JSON input data
- Add new DSL for looping over JSON arrays
- `<step> for each <entry> in <json|JSON> array <arrayRef>`
3.54.1
======
10 Jun 2024
- Support single top level object in JSON input data (in addition to array)
- Sort JSON input data by key names
- Convert nulls to blank when reading JSON properties
3.54.0
======
9 Jun 2024
- Add support for structured JSON input data
3.53.6
======
27 May 2024
- Use fixed thread pool executor (instead of work stealing thread pool) for parallel excecution
3.53.5
======
May 20, 2024
- Fix HTML report summary table to cater for sustained errors
3.53.4
======
May 11, 2024
- Update dependencies
- Update jline from v3.25.1 to v3.26.1
- Update log4j-slf4j-impl from v2.23.0 to v2.23.1
- Update commons-codec from v1.16.1 to v1.17.0
- Update commons-text from v1.11.0 to v1.12.0
- Update scalatags from v0.12.0 to v0.13.1
- Update client-java from v5.2.5 to v5.2.14
- Update pdfbox from v3.0.1 to v3.0.2
- Update pdfbox-io from v3.0.1 to v3.0.2
- Update jackson-databind from v2.16.1 to v1.17.1
- Update guava from v33.0.0-jre to v33.2.0-jre
- Update scala from v3.4.0 to v3.4.1
3.53.3
======
May 7, 2024
- Generate No-op HTML report when no input data is provided
3.53.2
======
May 2, 2024
- Fix parameters delimiter in JS function resolver to accept blanks
3.53.1
======
Apr 15, 2024
- Fix alignment of Message annotations in formatter to cater for step level tags
3.53.0
======
Apr 14, 2024
- Add Trim and IgnoreCase annotations to support trimming and ignoring case in match DSLs
3.52.3
======
Apr 12, 2024
- Fix alignment of Message annotations in formatter to cater for step level tags
3.52.2
======
Apr 8, 2024
- Do not accumulate errors raised in an active `@Try` scope or a disabled step
3.52.1
======
Apr 8, 2024
- Do not accumulate errors raised in `@Try` steps
3.52.0
======
Apr 6, 2024
- Add accumulated errors and asserts
- Add DSL `I reset accumulated errors` to reset (clear) any currently accumulated errors and demarcate a boundary for new ones
- Add DSL `there should be no accumulated errors`
- When called after a series of failed soft or sustained assertions, will raise an error containing all accumulated failure messages
- Accumulated error messages can also be referenced throughout specifications as:
- `${gwen.accumulated.errors}` - A numbered list of accumulated errors, example:
```
2 errors:
(1) x should not be blank
(2) y should be true but got false
```
- `${gwen.accumulated.errors:JSONArray}` - A JSON array of accumulated errors, example:
```
["x should be blank", "y should not be true but got false"]
```
3.51.11
=======
Apr 3, 2024
- Bind first record of input data file when launching Gwen in REPL mode
3.51.10
=======
Mar 22, 2024
- Fix data feeds to cater for multiline data
3.51.9
======
Mar 11, 2024
- Update build tooling
3.51.8
======
Mar 11, 2024
- Update library dependencies
- Update gherkin from v27.0.0 to v28.0.0
- Update log4j-slf4j-impl from v2.22.1 to v2.23.0
- Update commons-codec from v1.16.0 to v1.16.1
- Update commons-model from v5.11.0 to 5.11.1
- Update client-java from v5.2.2 to v5.2.5
- Update scala from v3.3.1 to v3.4.0
3.51.7
======
Mar 06, 2024
- Include sustained errors in HTML summary report
3.51.6
======
Mar 04, 2024
- Consolidate assertion failed messages
3.51.5
======
Mar 4, 2024
- Remove `assertion failed:` prefix from assertion errors
3.51.4
======
Feb 29, 2024
- Change assertion error messages to be more fluent
3.51.3
======
Feb 7, 2024
- Update library dependencies
Update log4j-slf4j-impl from v2.21.1 to v2.22.1
3.51.2
======
Jan 31, 2024
- Fix transitive dependencies
3.51.1
======
Jan 31, 2024
- Update library dependencies
- Update jline from v3.23.0 to v3.25.1
- Update commons-codec from v1.10.0 to v1.11.0
- Update json-path from v2.8.0 to v2.9.0
- Update commons-model from v5.10.0 to v5.11.1
- Update client-java from v5.1.23 to v5.2.2
- Update pdfBox from v3.0.0 to v3.0.1
- Update library dependency overrides
- Update guava from v32.1.3-jre to v33.0.0-jre
3.51.0
======
Nov 7, 2023
- Add new DSLs for conditionally evaluating steps based on compare operations
- `<step> if <name> is[ not] blank`
- `<step> if <name> is not "<expression>"`
- `<step> if <name> <contains|starts with|ends with|matches regex|matches xpath|matches json path|matches template|matches template file> "<expression>"`
- `<step> if <name> does not <contain|start with|end with|match regex|match xpath|match json path|match template|match template file>"<expression>"`
- Add DSL to assign blank or boolean literal
- `<name> is <blank|true|false>`
3.50.2
======
Oct 30, 2023
- Fix dry run for file write DSLs
3.50.1
======
Oct 28, 2023
- Hyperlink each data table row in HTML reports to associated StepDef
- Update library dependencies
- Update gherkin from v26.2.0 to v27.0.0
- Update log4j-slf4j-impl from v2.20.0 to v2.21.1
- Update config from v1.4.2 to v1.4.3
- Update jansi from v2.4.0 to v2.4.1
- Update commons-model from v5.8.1 to v5.10.0
- Update client-java from v5.1.22 to v5.1.23
- Update guava from v32.1.2-jre to 32.1.3-jre
- Update jackson-databind from v2.15.2 to v2.15.3
- Update okio from v1.17.5 to v1.17.6
- Update reactive-streams from v1.0.3 to v1.0.4
- Update test library dependencies
- Update scalatest from v3.2.16 to v3.2.17
- Update h2 from v2.2.220 to v2.2.224
3.50.0
======
Oct 24, 2023
- Add DSLs for downloading files from a URL
- `I download "<url>" to "<filepath>"`
- `I download "<url>" to <filepathRef file>`
3.49.2
======
Oct 19, 2023
- Fix issue with negated if conditions when using data tables
3.49.1
======
Oct 19, 2023
- Retry PDF text capture until timeout
3.49.0
======
Oct 18, 2023
- Add new DSLs for conditionally evaluating repeating steps based on whether or not a binding is defined
- `<step> <repeat|until> <attribute> is[ not] defined`
3.48.1
======
Oct 10, 2023
- Fix arrow function parser to skip over standard js functions
3.48.0
======
Oct 10, 2023
- Add JS arrow functions
- Syntax: `(args) => body`
- Add arrow function evaluation to REPL
- Add new `gwen.report.attach.functions` setting to control whether or not to attach functions to steps (default is `true`)
- Introduce boolean `true` and `false` literals
- Annotation attributes can now be surrounded by back-ticks, in addition to single or double quotes
- Include messages and location of errors at end of console report
- Remove joda-time dependency and use java.time package instead
- Only override bindings if their values differ to current ones
3.47.5
======
Sep 19, 2023
- Improved syntax error reporting for annotations
3.47.4
======
Sep 19, 2023
- Support square brackets in addition to curly braces for list values in annotations (former preferred)
- Override transitive libararies to pick up vulnerability fixes
- Update guava from v32.0.1-jre to v32.1.2-jre
- Update okio from v1.172. to v1.17.5
3.47.3
======
Sep 18, 2023
- All annotations can now accept single or double quoted values
- Prefer single quoted values over double for all annotations
- Update scala from v3.3.0 to v3.3.1
3.47.2
======
Sep 16, 2023
- Use And keyword in trailing expanded dry run value steps
3.47.1
======
Sep 16, 2023
- Fix dry run annotation logic in for-each loop
- Remove pre-existing same named loop var check and restore value when for-each finishes
3.47.0
======
Sep 15, 2023
- Introduce DryRun Annotations to specify values for bindings that cannot be resolved in dry runs
- `@DryRun(name = '<name>', value = '<value>')`
- To specify a single dry run value
- The step having the annotation will be called once with this value in a dry run
- `@DryRun(name = '<name>', value = {'<value-1>', '<value-2>', '<value-N>'})`
- To specify multiple dry run values
- The step having the annotation will be repeatedly called for each value in a dry run
- Both Message and DryRun annotations can now accept single quotes in addition to double quotes around values
3.46.0
======
Sep 7, 2023
- Any type of binding can now be used as a boolean condition throughout the DSLs (in prior versions only JS or simple bindings were accepted).
3.45.0
======
Sep 7, 2023
- Add DSLs to capture PDF text content
- `I capture the PDF text from url "<url>" `
- `I capture the PDF text from url "<url>" as <name>`
- `I capture the PDF text from file "<filepath>"`
- `I capture the PDF text from file "<filepath>" as <name>`
- Introduce JSONArray notation for accessing list values in settings as JSON array literals
3.44.7
======
Aug 28, 2023
- Runtime library updates
- Update htmlcleaner from v2.28 to v2.29
- Update commons-codec from v1.15 to v1.16.0
- Update commons-model from v5.8.0 to v5.8.1
- Update client-java from v5.1.20 to v5.1.22
- Test library updates
- Update h2 from v2.1.214 to v2.2.220
3.44.6
======
Aug 3, 2023
- Fix dry run checks for boolean JS references
3.44.5
======
July 24, 2023
- Check that arguments[index] placholders are defined for all parameters passed to JS function bindings
3.44.4
======
July 14, 2023
- Fix typo in exception message
3.44.3
======
July 6, 2023
- Fix dry run for literal boolean conditions used in while-until DSLs
3.44.2
======
July 5, 2023
- Preserve previous implicit `gwen.eval.status.keyword` and `gwen.eval.status.message` state for steps and StepDefs called with Try annotation
3.44.1
======
July 5, 2023
- Fixed implicit `gwen.eval.status.keyword` and `gwen.eval.status.message` for StepDefs called with Try annotation
3.44.0
======
July 5, 2023
- Fixed implicit `gwen.eval.status.keyword` and `gwen.eval.status.message` for steps having Try annotation
- Introduced new implicit attributes:
- `gwen.eval.status.keyword.upperCased` = Value of `gwen.eval.status.keyword` in upper case
- `gwen.eval.status.keyword.lowerCased` = Value of `gwen.eval.status.keyword` in lower case
3.43.0
======
July 5, 2023
- Introduced new implicit attributes:
- `gwen.eval.status.message.escaped` = Java escaped equivalent of `gwen.eval.status.message`
- `gwen.eval.status.isFailed` = `true` if current feature evaluation is in error, `false` otherwise
- `gwen.eval.status.isPassed` = `true` if current feature evaluation is not in error, `false` otherwise
- Add support for boolean literals in place of javascript expressions as conditions in DSLs
3.42.1
======
June 30, 2023
- Use ✘ icon for failed steps in console and REPL output
- Fix event dispatching of empty examples with empty tables
3.42.0
======
June 30, 2023
- Add implicit attribute for accessing the name of the feature file currently being executed (excluding file extension)
- `gwen.feature.file.simpleName`
3.41.0
======
June 29, 2023
- Add the following implicit attributes for accessing the number and index of the current input data record being processed
- `data.record.number` = the current record number starting at 1
- `data.record.index` = the current record index starting at 0
- Add the following implicit attributes for accessing the number and index of the current while, until, or foreach iteration
- `iteration.number` = the current iteration number starting at 1
- `iteration.index` = the current iteration index starting at 0
3.40.0
======
June 26, 2023
- Add support for JSON data feeds and lookups
3.39.0
======
June 17, 2023
- Use checkmark icon ✔ for passed steps in console and REPL output
3.38.2
======
June 16, 2023
- Fix for gwen-interpreter/gwen-web#105
- Do not raise missing steps error if feature only contains an example annotated scenario outline
3.38.1
======
June 15, 2023
- Update CI workflow
3.38.0
======
June 15, 2023
- Build with Java 11
3.37.3
======
June 14, 2023
- Remove zero char from custom message
- Library updates
- Update scala from v3.2.2 to v3.3.0
- Update gherkin from v26.0.3 to v26.2.0
- Update json-path from v2.7.0 to v2.8.0
- Update joda-time from v2.12.2 to v2.12.5
- Update htmlcleaner from v2.26 to v2.28
- Update RP commons-model from v5.7.3 to v5.8.0
- Update RP client-java from v5.1.15 to v5.1.20
- Update jackson-databind from v2.14.2 to v2.15.2
- Update guava from v31.1-jre to v32.0.1-jre
3.37.2
======
June 13, 2023
- Honor assertion mode in custom assertion errors
3.37.1
======
June 11, 2023
- Fix dry run for while/until steps
3.37.0
======
June 10, 2023
- Abstract condition out of Repeat class
3.36.0
======
June 10, 2023
- Add Hard, Soft, and Sustained annotations for overriding the default assertion mode at the step level
3.35.6
======
May 17, 2023
- Check that functions applied to values in DSL steps have been defined
3.35.5
======
May 12, 2023
- Do not pause at breakpoints twice on guarded steps
3.35.4
======
May 10, 2023
- Trim headers from CSV data feeds
3.35.3
======
Apr 28, 2023
- Fix new line issue in REPL paste mode: dont print No-op
3.35.2
======
Apr 27, 2023
- Only print and evaluate each step once in REPL
3.35.1
======
Apr 24, 2023
- Evaluate multiple steps in REPL when copy pasted
3.35.0
======
Apr 8, 2023
- Refactored string interpolation
- Improved error reporting in CSV lookup DSL
- Improved Examples annotation CSV processing and error reporting
- Print Abstained status to standard out for steps that pass but were not executed due to negative guards or empty iteration conditions
- Implicitly log steps to console at inifite depth for dry runs
3.34.4
======
Mar 28, 2023
- Fix StepDef parameter interpolation checks in dry runs
3.34.3
======
Mar 27, 2023
- Log warning and return code 1 if context fails to close on exit
3.34.2
======
Mar 27, 2023
- Allow all interrupts resulting from cntl-c to exit REPL quietly
3.34.1
======
Mar 27, 2023
- Only load Gwen banner a second time when starting REPL if in verbose mode or evaluation occured on features
- Fix launch issue where no meta or feature files are provided
- Allow cntl-c to exit REPL quietly
3.34.0
======
Mar 25, 2023
- Introduce auto suggestions in the REPL console
- Introduce new settings to enable or disable auto suggestions and tab completion
- `gwen.console.repl.autoSuggestions=true|false` (default is true for enabled)
- `gwen.console.repl.tabCompletion=true|false` (default is true for enabled)
3.33.4
======
Mar 25, 2023
- Do not escape inputs in REPL
- Smaller StepDef indents in HTML reports
- New default of 20 pixels for `gwen.report.stepDef.indent.pixels` setting
3.33.3
======
Mar 21, 2023
- Allow cntl-d to exit REPL quietly
3.33.2
======
Mar 18, 2023
- Fix environment variable overrides for Settings
- Do no load Gwen banner a second time when starting REPL and loading meta unless verbose logging is enabled
- Use SpecPrinter to print step on breakpoints
3.33.1
======
Mar 16, 2023
- Relax strict and declarative rules when in REPL
3.33.0
======
Mar 15, 2023
- Bind implicit `gwen.stepDef.name` attribute to the currently executing StepDef name
3.32.0
======
Mar 15, 2023
- Add `format --pretty` CLI command for formatting feature and meta files for consistent and tidy Gherkin
3.31.1
======
Mar 14, 2023
- Include exception cause in reported javascript errors
- Reload tab completer when meta is reloaded in REPL
- Disable tab completion in REPL when in paste mode
- Pause node event listeners when at breakpoint in REPL session
- Report unknown input or command when REPL input is not recognised
- Make interpolation of Message annotations lenient
- Dependency udpates
- Update jline from v2.14.6 to v3.23.0
- Update log4j-slf4j-impl from v2.19.0 to v2.20.0
- Update scalatest from v3.2.14 to v3.2.15
- Update mockito-core from v4.9.0 to v4.11.0
3.31.0
======
Mar 8, 2023
- Softer border colors in HTML reports
- Stronger StepDef indents in HTML reports
- Add new `gwen.report.stepDef.indent.pixels` setting to configure StepDef indent size in HTML reports (default is 30 pixels)
3.30.1
======
Mar 6, 2023
- Fix soft and sustained assertions
- List all errors at summary level in HTML report
- Fix sustained assertion count
3.30.0
======
Mar 3, 2023
- New feature request gwen-interpreter/gwen-web#103
- Introduce `load` command in REPL console for reloading changed meta
3.29.7
======
Mar 1, 2023
- Accept meta having no steps
3.29.6
======
Mar 1, 2023
- Fix configured CLI input data option to accept single entry only
3.29.5
======
Feb 25, 2023
- Only require at least one input for dry run when data input file is specified
3.29.4
======
Feb 17, 2023
- Defer initialisation of HTML report file resources until needed
3.29.3
======
Feb 16, 2023
- Update dependencies
- Update scala from v3.2.1 to v3.2.2
- Update gherkin from v25.0.2 to v26.0.3
- Update rp-common from v5.3.3 to v5.7.3
- Update client-java from v5.0.22 to v5.1.15
- Update dependency overrides
- Update jackson-databind from v2.14.1 to 2.14.2
- Removed tika-core
- Update copyright year
3.29.2
======
Dec 23, 2022
- Update transitive dependencies (security upgrade)
3.29.1
======
Dec 23, 2022
- Include lapsed time in HTML summaries and remove overhead times
3.29.0
======
Dec 9, 2022
- Add new DSL for conditionally evaluating steps based on whether or not a binding is defined
- `<step> if <attribute> is[ not] defined`
3.28.17
=======
Dec 6, 2022
- Update runtime dependencies
- Update scala from v3.2.0 to v3.2.1
- Update gherkin from v24.0.0 to v25.0.2
- Update commons-text from v1.9 to v1.10.0
- Update joda-time from v2.11.2 to v2.12.2
- Update runtime overrides
- Update jackson-databind from v2.13.4 to 2.14.1
- Update test dependencies
- Update mockito-core from v4.8.0 to v4.9.0
3.28.16
=======
Nov 6, 2022
- Raise error when attempt is made to parse empty feature file