-
-
Notifications
You must be signed in to change notification settings - Fork 18
/
CHANGELOG
3961 lines (3555 loc) · 166 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.0.2
=====
27 November 2024
- Update selenium-java from v4.26.0 to v4.27.0
- Use getDomAttribute and getDomProperty instead of deprecated getAttribute method of web element
4.0.1
=====
15 November 2024
- Update Gwen core from v4.0.0 to v[4.0.1](https://github.com/gwen-interpreter/gwen/releases/tag/v4.0.1)
- 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 (including discovered brownser and env settings)
- 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
- Only auto discover associative meta
- Put samples in features/samples when initialising new project
- Update Gwen core from v3.66.0 to v[4.0.0](https://github.com/gwen-interpreter/gwen/releases/tag/v4.0.0)
- Update dependencies
- Update scala from v3.5.0 to v3.5.2
- Update selenium from v4.25.0 to v4.26.0
- 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.web.driver.manager` | N/A - SeleniumManager only used now |
| `gwen.auto.discover.meta` | `-m|--meta` launch option |
| `gwen.associative.meta` | This is now always on |
| `gwen.web.implicit.js.locators` | JS locators |
- | 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
- WebDriverManager support
- IE browser integration
- `gwen-web-accept-untrusted-certs` setting (use `acceptInsecureCerts` capability instead)
- DSL steps
- `I wait <duration> second[s] when <element> is <actioned>`
- `I wait until <condition> when <element> is <actioned>`
- `I navigate to the <page>`
- `I am on the <page>`
- `the <page> url is "<url>"`
- `the url will be "<url>`
- `the url will be defined by <property|setting> "<name>"`
- 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`
- Web DSL steps in favour of base step with `@Timeout` and `@Delay` annotations:
- `I wait for <element> for <duration> second[s]`
- `I wait for <element> text for <duration> second[s]`
- `I wait until "<javascript>" using <delay> <delayUnit> delay`
- `I wait until "<javascript>" using <timeout> <timeoutUnit> timeout`
- `I wait until "<javascript>" using <delay> <delayUnit> delay and <timeout> <timeoutUnit> timeout`
- `I wait until <condition> using <delay> <delayUnit> delay`
- `I wait until <condition> using <timeout> <timeoutUnit> timeout`
- `I wait until <condition> using <delay> <delayUnit> delay and <timeout> <timeoutUnit> timeout`
- `<step> for each <element> located by <selector> "<expression>" with no <wait|timeout>`
- `<step> for each <element> located by <selector> "<expression>" with <timeoutSecs> second <wait|timeout>`
- `<step> for each <element> located by <selector> "<expression>" in <containerElement> with no <wait|timeout>`
- `<step> for each <element> located by <selector> "<expression>" in <containerElement> with <timeoutSecs> second <wait|timeout>`
- `<step> <until|while> <element> is[ not] <state> using <delay> <delayUnit> delay`
- `<step> <until|while> <element> is[ not] <state> using <timeout> <timeoutUnit> timeout`
- `<step> <until|while> <element> is[ not] <state> using <delay> <delayUnit> delay and <timeout> <timeoutUnit> timeout`
- `<step> <until|while> <element> is[ not] <state> using no delay and <timeout> <timeoutUnit> timeout`
- `<element> can be located by <selector> "<expression>" with no <wait|timeout>`
- `<step> <until|while> <element> is[ not] <state> using no delay`
- `<step> <until|while> <name> is[ not] defined using <delay> <delayUnit> delay`
- `<step> <until|while> <name> is[ not] defined using <timeout> <timeoutUnit> timeout`
- `<step> <until|while> <name> is[ not] defined using <delay> <delayUnit> delay and <timeout> <timeoutUnit> timeout`
- `<step> <until|while> <name> is[ not] defined using no delay and <timeout> <timeoutUnit> timeout`
- `<step> <until|while> <name> is[ not] defined using no delay`
- `<element> can be located by <selector> "<expression>" with <timeoutSecs> second <wait|timeout>`
- `<element> can be located by <selector> "<expression>" at index <index> with no <wait|timeout>`
- `<element> can be located by <selector> "<expression>" at index <index> with <timeoutSecs> second <wait|timeout>`
- `<element> can be located by <selector> "<expression>" at index <index> in <otherElement> with no <wait|timeout>`
- `<element> can be located by <selector> "<expression>" at index <index> in <otherElement> with <timeoutSecs> second <wait|timeout>`
- `<element> can be located by <selector> "<expression>" <relativeTo> <otherElement> with no <wait|timeout>`
- `<element> can be located by <selector> "<expression>" <relativeTo> <otherElement> with <timeoutSecs> second <wait|timeout>`
- ```
<element> can be located at index <index> with no <wait|timeout> by
| selector | expression |
| <selector 1> | <expression 1> |
| <selector 2> | <expression 2> |
| .. | .. |
| <selector n> | <expression n> |
```
- ```
<element> can be located at index <index> with <timeoutSecs> second <wait|timeout> by
| selector | expression |
| <selector 1> | <expression 1> |
| <selector 2> | <expression 2> |
| .. | .. |
| <selector n> | <expression n> |
```
3.77.1
======
4 November 2024
- Update selenium from v4.25.0 to v4.26.0
3.77.0
======
9 October 2024
- Update Gwen core from v3.65.0 to v[3.66.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.66.0)
- 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.76.0
======
26 September 2024
- Update Gwen core from v3.64.0 to v[3.65.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.65.0)
- 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.75.0
======
23 September 2024
- Deprecated DSL steps:
- `I wait <duration> second[s] when <element> is <actioned>`
- `I wait until <condition> when <element> is <actioned>`
- Update Gwen core from v3.63.2 to v[3.64.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.64.0)
- 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.74.3
======
21 September 2024
- Update selenium from v4.24.0 to v4.25.0
3.74.2
======
20 September 2024
- Update Gwen core from v3.63.1 to v[3.63.2](https://github.com/gwen-interpreter/gwen/releases/tag/v3.63.2)
- Interpolate step level tags
- Report deprecation error even if step contains `@Try`
3.74.1
======
19 September 2024
- Update Gwen core from v3.63.0 to v[3.63.1](https://github.com/gwen-interpreter/gwen/releases/tag/v3.63.1)
- Fix deprecation msg
3.74.0
======
19 September 2024
- Update Gwen core from v3.62.0 to v[3.63.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.63.0)
- 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.73.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 Gwen core from v3.61.7 to v[3.62.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.62.0)
- 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.72.7
======
11 September 2024
- Honor timeout overrides on guards involving web elements
3.72.6
======
2 September 2024
- Update Gwen core from v3.61.6 to v[3.61.7](https://github.com/gwen-interpreter/gwen/releases/tag/v3.61.7)
- Detect and report multi-line input data field names as errors
3.72.5
======
2 September 2024
- Update selenium from v4.23.1 to v4.24.0
- Update webdrivermanager from v5.9.1 to v5.9.2
3.72.4
======
28 August 2024
- Update Gwen core from v3.61.5 to v[3.61.6](https://github.com/gwen-interpreter/gwen/releases/tag/v3.61.6)
- Report malformed data file error when an input data file fails to parse
3.72.3
======
27 August 2024
- Update Gwen core from v3.61.4 to v[3.61.5](https://github.com/gwen-interpreter/gwen/releases/tag/v3.61.5)
- Fix JS function calls with multiline string arguments
3.72.2
======
20 August 2024
- Restrict the following DSLs to prevent sessions named "child window" or "child tab"
- `I start a browser for <name>`
- `I switch to <name>`
- `I close the browser for <name>`
3.72.1
======
18 August 2024
- Set project name to BUILD_TAG when calling docker-compose in Jenkinsfile template
- Set publishHTML.allowMissing to true in generated Jenkinsfile
- Set publishHTML.alwaysLinkToLastBuild to false in generated Jenkinsfile
- Improved error handling in Jenkins template
- Update Gwen core from v3.61.3 to v[3.61.4](https://github.com/gwen-interpreter/gwen/releases/tag/v3.61.4)
- Deprecate report portal integration
3.72.0
======
15 August 2024
- Add DSL for switching to frames
- `I switch to <frame> content`
- Update selenium from v4.23.0 to v4.23.1
- Update Gwen core from v3.61.2 to v[3.61.3](https://github.com/gwen-interpreter/gwen/releases/tag/v3.61.3)
- Remove unnecessary logging of features filtered by tags
3.71.3
======
25 July 2024
- Pass GWEN_WEB_VERSION env var through to docker
- Update selenium from v4.22.0 to v4.23.0
3.71.2
======
20 July 2024
- Fix wait until element is displayed DSL
- Remove version from docker compose file
- Update Gwen core from v3.61.1 to v[3.61.2](https://github.com/gwen-interpreter/gwen/releases/tag/v3.61.2)
- 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.71.1
======
9 July 2024
- Update Gwen core from v3.61.0 to v[3.61.1](https://github.com/gwen-interpreter/gwen/releases/tag/v3.61.1)
- Use `ISO-8859-1` encoding if text files cannot be read using `UTF-8`
3.71.0
======
9 July 2024
- Update Gwen core from v3.60.1 to v[3.61.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.61.0)
- Add DSL to read in file using a given character encoding
- `<name> is defined by <encoding> file "<filepath>"`
3.70.1
======
9 July 2024
- Update Gwen core from v3.60.0 to v[3.60.1](https://github.com/gwen-interpreter/gwen/releases/tag/v3.60.1)
- Fix `gwen.eval.status.message` implicit
3.70.0
======
8 July 2024
- Update Gwen core from v3.59.0 to v[3.60.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.60.0)
- 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.69.0
======
3 Jul 2024
- Update Gwen core from v3.58.2 to v[3.59.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.59.0)
- 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.68.2
======
1 Jul 2024
- Update selenium from v4.21.0 to v4.22.0
- Update webdrivermanager from v5.8.0 to v5.9.1
3.68.1
======
24 Jun 2024
- Update Gwen core from v3.58.1 to v[3.58.2](https://github.com/gwen-interpreter/gwen/releases/tag/v3.58.2)
- Add implicit values for capturing evaluation duration in seconds
- `gwen.eval.duration.secs` - the formatted duration (eg: 23.5)
3.68.0
======
22 Jun 2024
- Update Gwen core from v3.57.1 to v[3.58.1](https://github.com/gwen-interpreter/gwen/releases/tag/v3.58.1)
- 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.67.2
======
19 Jun 2024
- Set browser prefs according to local or remote connection type
3.67.1
======
19 Jun 2024
- Update Gwen core from v3.57.0 to v[3.57.1](https://github.com/gwen-interpreter/gwen/releases/tag/v3.57.1)
- Fix ordering of x is "y" DSL
3.67.0
======
18 Jun 2024
- Update Gwen core from v3.56.0 to v[3.57.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.57.0)
- Add `@Masked` annotation to mask dynamically evaluated data bound by the follwing binding 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.66.0
======
13 Jun 2024
- Update Gwen core from v3.55.0 to v[3.56.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.56.0)
- Json data bindings for nested array loops
- Simplified DSL for looping over JSON arrays
- `<step> for each <entry> in <arrayRef> array`
3.65.0
======
12 Jun 2024
- Update Gwen core from v3.54.1 to v[3.55.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.55.0)
- Enhanced support for JSON input data
- Add new DSL for looping over JSON arrays
- `<step> for each <entry> in <json|JSON> array <arrayRef>`
3.64.1
======
10 Jun 2024
- Update Gwen core from v3.54.0 to v[3.54.1](https://github.com/gwen-interpreter/gwen/releases/tag/v3.54.1)
- 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.64.0
======
9 Jun 2024
- Update Gwen core from v3.53.6 to v[3.54.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.54.0)
- Add support for structured JSON input data
3.63.0
======
28 May 2024
- Introduce new `gwen.web.remote.sessionRetries` setting:
- Valid values are `true`, `false`, or `auto`
- Default is `auto` to enable session retries whenenver `gwen.web.remote.url` is set
- When enabled, the number of retry attempts is determined by the number of available CPU cores divided by 4. The first failed attempt waits 1 second, the next 2 seconds, the next 3 seconds and so on until all attempts are exhausted.
3.62.8
======
27 May 2024
- Update Gwen core from v3.53.5 to v[3.53.6](https://github.com/gwen-interpreter/gwen/releases/tag/v3.53.6)
- Use fixed thread pool executor (instead of work stealing thread pool) for parallel excecution
3.62.7
======
May 20, 2024
- Update Gwen core from v3.53.4 to v[3.53.5](https://github.com/gwen-interpreter/gwen/releases/tag/v3.53.5)
- Fix HTML report summary table to cater for sustained errors
3.62.6
======
May 17, 2024
- Update selenium from v4.20.0 to v4.21.0
3.62.5
======
May 11, 2024
- Update dependencies
- Update webdrivermanager from v5.7.0 to v5.8.0
- Update Gwen core from v3.53.3 to v[3.53.4](https://github.com/gwen-interpreter/gwen/releases/tag/v3.53.4)
- 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.62.4
======
May 7, 2024
- Update Gwen core from v3.53.2 to v[3.53.3](https://github.com/gwen-interpreter/gwen/releases/tag/v3.53.3)
- Generate No-op HTML report when no input data is provided
3.62.3
======
May 2, 2024
- Update Gwen core from v3.53.1 to v[3.53.2](https://github.com/gwen-interpreter/gwen/releases/tag/v3.53.2)
- Fix parameters delimiter in JS function resolver to accept blanks
3.62.2
======
Apr 26, 2024
- Update selenium from v4.19.1 to v4.20.0
- Default `gwen.web.remote.localFileDetector` to `auto` so it is automatically enabled for remote driver sessions
3.62.1
======
Apr 15, 2024
- Update Gwen core from v3.53.0 to v[3.53.1](https://github.com/gwen-interpreter/gwen/releases/tag/v3.53.1)
- Fix alignment of Message annotations in formatter to cater for step level tags
3.62.0
======
Apr 14, 2024
- Update Gwen core from v3.52.2 to v[3.53.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.53.0)
- Add Trim and IgnoreCase annotations to support trimming and ignoring case in match DSLs
3.61.2
======
Apr 8, 2024
- Update Gwen core from v3.52.1 to v[3.52.2](https://github.com/gwen-interpreter/gwen/releases/tag/v3.51.2)
- Do not accumulate errors raised in an active `@Try` scope or a disabled step
3.61.1
======
Apr 8, 2024
- Update Gwen core from v3.52.0 to v[3.52.1](https://github.com/gwen-interpreter/gwen/releases/tag/v3.51.1)
- Do not accumulate errors raised in `@Try` steps
3.61.0
======
Apr 6, 2024
- Update Gwen core from v3.51.11 to v[3.52.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.52.0)
- 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 be true but got false"]
```
3.60.12
=======
Apr 3, 2024
- Update selenium from v4.18.0 to v4.19.1
- Update Gwen core from v3.51.10 to v[3.51.10](https://github.com/gwen-interpreter/gwen/releases/tag/v3.51.11)
- Bind first record of input data file when launching Gwen in REPL mode
3.60.11
=======
Mar 27, 2024
- Update node to v21 in bundled DockerFile
3.60.10
=======
Mar 22, 2024
- Update Gwen core from v3.51.9 to v[3.51.10](https://github.com/gwen-interpreter/gwen/releases/tag/v3.51.10)
- Fix data feeds to cater for multiline data
3.60.9
======
Mar 11, 2024
- Update Gwen core from v3.51.8 to v[3.51.9](https://github.com/gwen-interpreter/gwen/releases/tag/v3.51.9)
- Update build tooling
3.60.8
======
Mar 11, 2024
- Update Gwen core from v3.51.7 to v[3.51.8](https://github.com/gwen-interpreter/gwen/releases/tag/v3.51.8)
- 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.60.7
======
Mar 06, 2024
- Update Gwen core from v3.51.6 to v[3.51.7](https://github.com/gwen-interpreter/gwen/releases/tag/v3.51.7)
- Include sustained errors in HTML summary report
3.60.6
======
Mar 04, 2024
- Update Gwen core from v3.51.5 to v[3.51.6](https://github.com/gwen-interpreter/gwen/releases/tag/v3.51.6)
- Consolidate assertion failed messages
3.60.5
======
Mar 04, 2024
- Update Gwen core from v3.51.4 to v[3.51.5](https://github.com/gwen-interpreter/gwen/releases/tag/v3.51.5)
- Remove `assertion failed:` prefix from assertion errors
3.60.4
======
Mar 01, 2024
- Fix GWEN_VIDEO override
3.60.3
======
Feb 29, 2024
- Update library dependencies
- Update webdrivermanager from v5.6.3 to v5.7.0
- Update Gwen core from v3.51.3 to v[3.51.4](https://github.com/gwen-interpreter/gwen/releases/tag/v3.51.4)
- Change assertion error messages to be more fluent
3.60.2
======
Feb 21, 2024
- Update selenium from v4.17.0 to v4.18.1
3.60.1
======
Feb 7, 2024
- Update Gwen core from v3.51.2 to v[3.51.3](https://github.com/gwen-interpreter/gwen/releases/tag/v3.51.3)
- Update library dependencies
Update log4j-slf4j-impl from v2.21.1 to v2.22.1
3.60.0
======
Jan 31, 2024
- Set`auto` as the new default for `gwen.web.remote.localFileDetector` setting
- Implicitly set `gwen.web.remote.localFileDetector` setting to `true` if it's set to `auto` and the `gwen.remote.url` setting is provided
- Update selenium from v4.16.1 to v4.17.0
- Update Gwen core from v3.51.0 to v[3.51.2](https://github.com/gwen-interpreter/gwen/releases/tag/v3.51.2)
- 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.59.1
======
Dec 21, 2023
- Update selenium from v4.15.0 to v4.16.1
3.59.0
======
Nov 7, 2023
- Update selenum from v4.14.1 to v4.15.0
- Update Gwen core from v3.50.2 to v[3.51.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.51.0)
- 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.58.2
======
Oct 30, 2023
- Update Gwen core from v3.50.1 to v[3.50.2](https://github.com/gwen-interpreter/gwen/releases/tag/v3.50.2)
- Fix dry run for file write DSLs
3.58.1
======
Oct 28, 2023
- Update Gwen core from v3.50.0 to v[3.50.1](https://github.com/gwen-interpreter/gwen/releases/tag/v3.50.1)
- 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 webdrivermanager from v5.3.3 to v5.5.3
- Update commons-io from v2.13.0 to v2.15.0
- 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.58.0
======
Oct 24, 2023
- Add DSLs for downloading files from a URL
- `I download "<url>" to "<filepath>"`
- `I download "<url>" to <filepathRef file>`
- `I download the current URL to "<filepath>"`
- `I download the current URL to <filepathRef file>`
- Update selenium from v4.14.0 to v4.14.1
- Update Gwen core from v3.49.2 to v[3.50.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.50.0)
3.57.2
======
Oct 19, 2023
- Update Gwen core from v3.49.1 to v[3.49.2](https://github.com/gwen-interpreter/gwen/releases/tag/v3.49.2)
- Fix issue with negated if conditions when using data tables
3.57.1
======
Oct 19, 2023
- Update Gwen core from v3.49.0 to v[3.49.1](https://github.com/gwen-interpreter/gwen/releases/tag/v3.49.1)
- Retry PDF text capture until timeout
3.57.0
======
Oct 18, 2023
- Add implicit attribute `gwen.web.sessionId` for accessing current web session ID.
- Update Gwen core from v3.48.1 to v[3.49.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.49.0)
- 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.56.1
======
Oct 11, 2023
======
- Update Gwen core from v3.48.0 to v[3.48.1](https://github.com/gwen-interpreter/gwen/releases/tag/v3.48.1)
- Fix arrow function parser to skip over standard js functions
3.56.0
======
Oct 10, 2023
- Update selenium from v4.12.1 to v4.14.0
- Update Gwen core from v3.47.5 to v[3.48.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.48.0)
- 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.55.5
======
Sep 19, 2023
- Update Gwen core from v3.47.4 to v[3.47.5](https://github.com/gwen-interpreter/gwen/releases/tag/v3.47.5)
- Improved syntax error reporting for annotations
3.55.4
======
Sep 19, 2023
- Support square brackets in addition to curly braces for list values in annotations (former preferred)
- Update Gwen core from v3.47.3 to v[3.47.4](https://github.com/gwen-interpreter/gwen/releases/tag/v3.47.4)
- 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
- Update commons-io from v2.6. to v2.13.0
3.55.3
======
Sep 18, 2023
- Update Gwen core from v3.47.2 to v[3.47.3](https://github.com/gwen-interpreter/gwen/releases/tag/v3.47.3)
- 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.55.2
======
Sep 16, 2023
- Update Gwen core from v3.47.1 to v[3.47.2](https://github.com/gwen-interpreter/gwen/releases/tag/v3.47.2)
- Use And keyword in trailing expanded dry run value steps
3.55.1
======
Sep 16, 2023
- Update Gwen core from v3.47.0 to v[3.47.1](https://github.com/gwen-interpreter/gwen/releases/tag/v3.47.1)
- 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.55.0
======
Sep 15, 2023
- Update Gwen core from v3.46.0 to v[3.47.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.47.0)
- 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.54.1
======
Sep 8, 2023
- Fix wording in condition timeout messages
3.54.0
======
Sep 7, 2023
- Update Gwen core from v3.45.0 to v[3.46.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.46.0)
- 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.53.0
======
Sep 7, 2023
- Update Gwen core from v3.44.7 to v[3.45.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.45.0)
- Add DSLs to capture PDF text content
- `I capture the PDF text from the current URL`
- `I capture the PDF text from the current URL as <name>`
- `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.52.8
======
Sep 6, 2023
- Update selenium from v4.12.0 to v4.12.1
3.52.7
======
Sep 2, 2023
- Update selenium from v4.11.0 to v4.12.0
3.52.6
======
Aug 28, 2023
- Update Gwen core from v3.44.6 to v[3.44.7](https://github.com/gwen-interpreter/gwen/releases/tag/v3.44.7)
- 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.52.5
======
Aug 28, 2023
- Fix dry run for web element text capture
3.52.4
======
Aug 3, 2023
- Update Gwen core from v3.44.5 to v[3.44.6](https://github.com/gwen-interpreter/gwen/releases/tag/v3.44.6)
- Fix dry run checks for boolean JS references
3.52.3
======
Aug 1, 2023
- Update selenium from v4.10.0 to v4.11.0
3.52.2
======
July 24, 2023
- Update Gwen core from v3.44.4 to v[3.44.5](https://github.com/gwen-interpreter/gwen/releases/tag/v3.44.5)
- Check that arguments[index] placeholders are defined for all parameters passed to JS function bindings
3.52.1
======
July 14, 2023
- Update Gwen core from v3.44.3 to v[3.44.4](https://github.com/gwen-interpreter/gwen/releases/tag/v3.44.4)
- Fix typo in exception message
3.52.0
======
July 6, 2023
- Introdocue new and default `auto` option for the `gwen.web.assertions.maxStrikes` setting and set it equal to `gwen.web.wait.seconds` when set to that value.
- For example, if youre timeout is configured to 10 seconds, then your max strike count for assertions will be 10 if when set to `auto`.
3.51.2
======
July 6, 2023
- Update Gwen core from v3.44.2 to v[3.44.3](https://github.com/gwen-interpreter/gwen/releases/tag/v3.44.3)
- Fix dry run for literal boolean conditions used in while-until DSLs
3.51.1
======
July 5, 2023
- Update Gwen core from v3.44.0 to v[3.44.2](https://github.com/gwen-interpreter/gwen/releases/tag/v3.44.2)
- Preserve previous implicit `gwen.eval.status.keyword` and `gwen.eval.status.message` state for steps and StepDefs called with Try annotation
3.51.0
======
July 5, 2023
- Update Gwen core from v3.43.0 to v[3.44.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.44.0)
- 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.50.0
======
July 5, 2023
- Update Gwen core from v3.42.1 to v[3.43.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.43.0)
- 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.49.1
======
June 30, 2023
- Update Gwen core from v3.42.0 to v[3.42.1](https://github.com/gwen-interpreter/gwen/releases/tag/v3.42.1)
- Use ✘ icon for failed steps in console and REPL output
- Fix event dispatching of examples with empty tables
3.49.0
======
June 30, 2023
- Update Gwen core from v3.41.0 to v[3.42.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.42.0)
- Add implicit attribute for accessing the name of the feature file currently being executed (excluding file extension)
- `gwen.feature.file.simpleName`
3.48.0
======
June 29, 2023
- Update Gwen core from v3.40.0 to v[3.41.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.41.0)
- 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.47.0
======
June 26, 2023
- Update Gwen core from v3.39.0 to v[3.40.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.40.0)
- Add support for JSON data feeds and lookups
3.46.0
======
June 17, 2023
- Update Gwen core from v3.38.2 to v[3.39.0](https://github.com/gwen-interpreter/gwen/releases/tag/v3.39.0)
- Use checkmark icon ✔ for passed evaluation status when logging steps
3.45.1
======
June 16, 2023
- Fix for #105
- Update Gwen core from v3.38.1 to v[3.38.2](https://github.com/gwen-interpreter/gwen/releases/tag/v3.38.2)
- Do not raise missing steps error if feature only contains an example annotated scenario outline
3.45.0
======
June 15, 2023
- Build with Java 11
- Update CI workflow
3.44.3
======
June 13, 2023
- Update Gwen core from v3.37.2 to v[3.37.3](https://github.com/gwen-interpreter/gwen/releases/tag/v3.37.3)
- 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