Update dependency com.intuit.karate:karate-junit5 to v1.4.1#6
Open
specmatic-builder wants to merge 1 commit intomainfrom
Open
Update dependency com.intuit.karate:karate-junit5 to v1.4.1#6specmatic-builder wants to merge 1 commit intomainfrom
specmatic-builder wants to merge 1 commit intomainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.2.0->1.4.1Release Notes
karatelabs/karate (com.intuit.karate:karate-junit5)
v1.4.1Compare Source
First, a big THANK YOU to all new contributors !
New Contributors
For those interested in participating in Hacktoberfest, you can find instructions here: Karate and Hacktoberfest
Fix List
Some notable improvements:
driver.intercept()(Chrome only) now returns a mock, which opens up some advanced use-cases, see #2361Here is a complete list of all issues fixed in this release.
Breaking Changes
The good news is that for most teams there should not be any breakages to existing test scripts. But there are a few things to note, read on below.
match eachdefaults to fail if array is emptyYou can read a detailed description in the issue #2364. This may break existing test scripts only if you are extensively using the fuzzy matching short-cut
#[]in enbedded schema validations. The good news is that if you see any of your existing tests break, you can do this to get back the old behavior.* configure matchEachEmptyAllowed = trueif a
match eachfails now with Karate 1.4.1, ensure that any JsonPath expression on the LHS (Left Hand Side) is accurate. The reason for this change in Karate behavior is that previously - if you had an invalid JsonPath expression on the LHS of amatch each, it would always return an empty array, and thematchwould always pass.Docker image now in
karatelabsorganizationUntil now, the karate-chrome Docker image was published at ptrthomas/karate-chrome. It has now moved to karatelabs/karate-chrome.
IDE debugging requires extra dependency
IDE debugging now requires an extra dependency on the classpath. Maven and Gradle users can use the
io.karatelabs:karate-debugserverdependency. For details on how to use the new debug-server in IntelliJ or VS Code, please refer to this wiki page: Debug Server.Experimental Distributed Testing Support Removed
Karate used to have a distributed-testing (experimental) option released in v0.9.5. This is no-longer available as part of karate-core
Heads Up
Karate 1.5.0 will require Java 17. This is a bit sooner than we expected, but reasons are explained in #2401 - mainly because of needing to address some CVEs. 1.4.1 may be the last release that supports Java 11.
Karate 1.5.0 will also change the Maven group-id from
com.intuit.karatetoio.karatelabs. Note that a 1.5.0.RC1 is available for teams to start trying this out. For a smoother transition, the Java APIs would be changed in a future release (most likely 1.6.0).What's Changed
Full Changelog: karatelabs/karate@v1.4.0...v1.4.1
Artifacts Released
v1.4.0Compare Source
Important
There are multiple security vulnerabilities in libraries that Karate depends on that are fixed in this release. If you are on an old version of Karate - it is strongly recommended that you upgrade. Refer #2148 | #2265 | #2277
Breaking Changes
The main change in this release is that Karate requires Java 11 or above. We no longer support Java 8. Otherwise there should not be any syntax or behavior changes (from Karate 1.3.X).
Note that some of the security / CVE fixes cannot be back-ported to Java 8 because they depend on Java 11.
Also note:
RunnerAPI or JUnit 5karate-mock-servletdependency is no longer publishedcucumber-java1.2.5 dependency is no longer included, refer #2214Fix List
Here is a complete list of all issues fixed in this release.
What's Changed
New Contributors
Full Changelog: karatelabs/karate@v1.3.1...v1.4.0
Artifacts Released
v1.3.1Compare Source
This is a bug-fix release.
Please refer to the release notes of v1.3.0 if you are upgrading from an older version.
@setupwrongly increased scenario count #2169@setupwas running even when supposed to be skipped #2169@setupmissed a way to run setup once #2210karate.env#2196match eachnow works forcontains deep#2170Artifacts Released
v1.3.0Compare Source
New in 1.3.0
Visual Validation
A big thanks to @jkeys089 who contributed this after exploring various commercial and open-source tools. This is designed to solve issues encountered using existing / external screenshot comparison services. For example:
The solution:
Karate now has a
compareImagekeyword and the correspondingkarate.compareImage()JS API.Refer to this video for how to use the HTML UI in the Karate report to inspect, configure and update the screenshots.
Graal JS multi-thread issues are solved
This is a big deal, achieved after upgrading Graal to version 22.0.
Advanced users of Karate may have run into some edge cases when trying to pass a JavaScript function to called feature files, especially when
callonceandkarate.callSingle()are involved and tests are run in parallel.These issues were mostly solved in 1.1.0 and 1.2.0, but a few rare cases were still reported.
This issue is finally resolved along with some code clean-up and we are back to how things were in v0.9.X. You can freely pass JS functions all over the place.
New
karate.responseandkarate.requestAPIThis specifically solves for retrieving a given header while ignoring the case. While Karate already had support for this in simple
matchstatements and via theconfigure lowerCaseResponseHeadersoption, there were advanced use-cases that required more control. You can find more details here. Here is an example:karate.response.header('content-type').This also makes mock request routing based on headers much easier, for e.g.
karate.request.header('foo') == 'bar'.New option to write mocks in JavaScript
This is an alternate option for those who want to write more complicated mocks and opens up a lot of possibilities. The "server side" JS API is simple, clean and designed to even serve dynamic HTML.
Refer to this documentation for more: Karate JavaScript Mocks.
contains only deepformatchThis is an enhancement to
matchthat makes it possible to assert that a JSON is "deep equal to" another - but with the slight twist that JSON array order is ignored. Come to think of it, we should have had this sooner :| This is expected to be very relevant for teams using GraphQL. Details here: #2093configure abortSuiteOnFailureSome teams have requested for being able to stop the entire test suite if one test fails. This will save time when the environment has issues and "fail fast" instead of letting the CI job plough on and result in all tests failing. Details here: #2090
Easier way to drive dynamic
Scenario OutlinesSee the new
@setuplife-cycle described below.Breaking Changes
@setuplife-cycleThis is an important change that adds a new life-cycle to scenarios. There is a description and discussion here. The updated documentation can be found here.
The highlights are:
ScenariostartsScenario Outline(but can also be called from anyScenario)Backgroundwas only run once, but with this change, theBackgroundwill run before everyScenariowhether it isScenarioExamples:in a "normal"Scenario Outline:Scenario Outline:<-- this is the breaking changeHere is a diff of what to expect. In most cases, where you were using a
Backgroundto "drive" a dynamicScenario Outline, the change is to use aScenariotagged with@setupinstead.urlis not passed to called featuresMost likely you won't be affected by this. But in 1.2.0 we un-intentionally introduced a bug that the
urlandpathin the HTTP "builder" behind the scenes would NOT reset when you call a feature. You can find more details here.Some JS behavior has changed
ℹ️ Ignore this if you have not referred to JS functions within other JS functions.
For details, see: https://github.com/karatelabs/karate/issues/2009#issuecomment-1228632313
Websocket support has changed
ℹ️ Ignore this if you have not used the
karate.webSocket()APIThis is a breaking change, but the pattern for editing your existing tests is quite straightforward. Here below is a before-and-after:
socket.listen(5000)call has to be replaced with* listen 5000- where 5000 (here just an example) is the timeout in millisecondslistenResultholds the result of the captured websocket messageHeads Up
1.3.0 will be the last release of Karate that allows for usage of Java 8. From 1.4.0 onwards, Karate will have a minimum requirement of Java 11. Please comment here if you have any concerns.
For what's fixed in this version, refer to this list.
New Contributors
Full Changelog: karatelabs/karate@v1.2.0...v1.3.0
Artifacts Released
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot. Specmatic specific configuration is managed here.