Important Fixes
screenshotOnFailure: trueworks again; addedonStepFailurehook +ErrorRunEvent#2845configure headersno longer leaks Background-set headers across requests #2846- Type-hint
!with an angle-bracket type in a doc-string no longer throws an NPE #2847 call read('f.feature') { key: #(var) }no longer throwsReferenceError: # is not defined#2849startTime/endTimein the report JSON are correct again #2850Java.type()resolves classes on the JUnit Platform classpath (--cp) again #2855karate.tagValuesaggregates all tags #2859- Gatling
karateFeature("path", "@tag")applies the tag filter instead of treating it as a path #2870 - Scenario Outline Example vars no longer mishandled when
callonceis used in Background #2874 - ApacheHttpClient proxy
CONNECTTLS handshake uses the target host for SNI #2877 StackOverflowErroron circular-reference variables fixed #2880- Regression on the left side of
setfor JSON keys with special characters fixed #2886 geckodriverstarts again in standalone mode #2884StackOverflowErrorwhen anafterScenariohook calls a feature with a circular reference fixed #2887match $.field == '#notpresent'no longer throws when the field is missing #2892#()/##()schema references inside a doc-stringmatchparse correctly #2893[*]wildcard works insidekarate.match()with$JsonPath #2894setkeyword works with hyphenated key paths #2896- Embedded expressions in feature
callargs are evaluated as in v1 #2897 configure loggingmask is applied to the scenario that triggers acallonce#2898def var = $.missingyields#notpresentinstead of throwing #2899- JUnit no longer runs the wrong tests when calling other feature files #2900
outputJunitXmlexposed onio.karatelabs.junit6.Karate#2901- Type-hint suffix in an Examples table works in a
matchstatement #2902
New Features & Enhancements
- New
karate-imageextension — pixel image-comparison as its own ext module with a primitives API and an interactive diff lightbox in HTML reports - HTML report redesigned on Tailwind — timeline view, donut summary, filter chips, JSON syntax-highlighting of request/response bodies #2895
karate-js: ES6 classes (inheritance,super, instance/static fields), runtime strict mode, destructuring, logical-assignment (||=,&&=,??=), RegExp named capture groups- Ext SPI — pluggable extensions contributing CLI subcommands, channel factories, ext globals, and report assets
- Multi-part
karate.embedobject form + defer-until-visible embed rendering - Driver: out-of-process iframe (OOPIF) support for CDP; W3C driver mouse via the Actions API
- Gatling: protocol-scoped
callSingle/callOnce/setupOncecaches +protocol.runnerexposure - JUnit 6:
outputJunitXml/outputCucumberJsonon the builder Resource.bytes(byte[])in-memory binary factory; CSV frombyte[]support #2873Runner.Builder.getResolvedFeatures()exposed #2876
View the complete list of all issues fixed in this release.
Full Changelog: v2.0.9...v2.0.10
Important: refer 2.0.0 release notes for those upgrading from 1.X
Artifacts
- Maven artifacts
- Standalone JAR (download below)
- CVE / SBOM report (download below)