Executing Karate jar with mock using external library Spring Framework

Thanks for asking this, and I think I’ve figured out a way to do this which opens up a lot of great possibilities. The solution is to use Java first-principles, and not use the -jar option. The Karate command-line-app (or CLI) class happens to be com.intuit.karate.Main. I’m going to provide a demo here of using SikuliX. First, the feature file test.feature:

Feature: sikuli test

Background:
* def Screen = Java.type('org.sikuli.script.Screen')

Scenario:
* def s = new Screen()
* def c = s.capture()
* c.getFile('.')

And with the karate.jar and sikulixapi.jar in the same folder on the command line, this works (for windows, use ; instead of : as the “path separator”):

java -cp karate.jar:sikulixapi.jar com.intuit.karate.Main test.feature

For those looking to customize the classpath for the Visual Studio Code “Karate Runner” extension, please refer this: https://github.com/intuit/karate/wiki/Karate-Robot-Windows-Install-Guide#change-command-line-settings

Also see: https://stackoverflow.com/a/58398958/143475

For those who really don’t want to compile Java but need to use some JVM libraries, it is possible via pure JS, (but hard to troubleshoot and debug): https://stackoverflow.com/a/65035825/143475

Leave a Comment