I want to run karate tests in API call so that it can be integrated to our automation framework. However I am getting below error.
java.lang.NullPointerException
com.intuit.karate.core.ScenarioExecutionUnit.init(ScenarioExecutionUnit.java:147)
com.intuit.karate.core.ScenarioExecutionUnit.run(ScenarioExecutionUnit.java:236)
com.intuit.karate.core.FeatureExecutionUnit.run(FeatureExecutionUnit.java:164)
com.intuit.karate.core.FeatureExecutionUnit.run(FeatureExecutionUnit.java:73)
com.intuit.karate.core.Engine.executeFeatureSync(Engine.java:109)
com.intuit.karate.Runner.runFeature(Runner.java:163)
com.intuit.karate.Runner.runFeature(Runner.java:172)
org.arul.service.JavaAPITest.testCallingFeatureFromJava(JavaAPITest.java:27)
org.arul.controller.KarateController.getDataDrivenResult(KarateController.java:27)
I created JAXRS Rest API project and calling Karate test in the service class. I want invoke karate test in REST API call. Is this possible?
KarateController.java
package org.arul.controller;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.arul.service.JavaAPITest;
@Path("/datadriven")
public class KarateController {
JavaAPITest javaAPITest = new JavaAPITest();
@GET
@Produces(MediaType.APPLICATION_JSON)
public String getDataDrivenResult() {
System.out.println("Inside REST controller getDataDrivenResult");
String results = javaAPITest.testCallingFeatureFromJava();
return results;
}
}
JavaAPITest.java (Service)
package org.arul.service;
import com.intuit.karate.Runner;
import java.io.File;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
public class JavaAPITest {
private File getFileFromResources(String fileName) {
ClassLoader classLoader = getClass().getClassLoader();
URL resource = classLoader.getResource(fileName);
if (resource == null) {
throw new IllegalArgumentException("file is not found!");
} else {
return new File(resource.getFile());
}
}
public String testCallingFeatureFromJava() {
Map<String, Object> args = new HashMap();
args.put("name", "World");
Map<String, Object> result = Runner.runFeature(getFileFromResources("from-java.feature"), args, true);
System.out.println("Karate result = "+result.get("greeting"));
return (String)result.get("greeting");
}
}
Aucun commentaire:
Enregistrer un commentaire