I am trying to get the Karate json report for the sample feature file in the specific format mentioned below.
[
{
"line": 3,
"elements": [
{
"start_timestamp": "2022-04-05T17:17:20.811Z",
"before": [
{
"result": {
"duration": 19702884258,
"status": "passed"
},
"match": {
"location": "Hooks.before(Scenario)"
}
}
],
"line": 7,
"name": "Guided Member Welcome Login - SCAL_ACTIVE_NEW_SMOKE_EN",
"description": "",
"id": "smoke-feature;guided-member-welcome-login---scal-active-new-smoke-en",
"after": [
{
"result": {
"duration": 1245339916,
"status": "passed"
},
"match": {
"location": "Hooks.after(Scenario)"
}
}
],
"type": "scenario",
"keyword": "Scenario",
"steps": [
{
"result": {
"duration": 150247948961,
"status": "passed"
},
"line": 8,
"name": "Iamloggedintokp.orgas\"SCAL_ACTIVE_NEW_SMOKE\"\"English\"",
"match": {
"arguments": [
{
"val": "\"SCAL_ACTIVE_NEW_SMOKE\"",
"offset": 28
},
{
"val": "\"English\"",
"offset": 51
}
],
"location": "GMWHub.iAmLoggedInToKpOrgAs(String,String)"
},
"keyword": "Given "
},
{
"result": {
"duration": 15987954340,
"status": "passed"
},
"line": 9,
"name": "IamnavigatedtoGuidedMemberWelcomehubpage",
"match": {
"location": "GMWHub.iNavigateToGuidedMemberWelcomeHubPage()"
},
"keyword": "When"
}
],
"tags": [
{
"name": "@smoke"
},
{
"name": "@regression"
}
]
}
],
"name": "Smoke Feature",
"description": "",
"id": "smoke-feature",
"keyword": "Feature",
"uri": "file:target/parallel/features/Smoke_scenario001_run001_IT.feature",
"tags": []
}
]
However I am getting the report without the before and after keys as shown below.
[
{
"line": 1,
"elements": [
{
"start_timestamp": "2022-05-23T07:27:32.501Z",
"line": 3,
"name": "GET Request",
"description": "",
"id": "get-request",
"type": "scenario",
"keyword": "Scenario",
"steps": [
{
"name": "url 'https://reqres.in/api/users/2'",
"result": {
"duration": 1949100,
"status": "passed"
},
"match": {
"location": "karate",
"arguments": []
},
"keyword": "Given",
"line": 4
},
{
"name": "method GET",
"result": {
"duration": 1208456200,
"status": "passed"
},
"match": {
"location": "karate",
"arguments": []
},
"keyword": "When",
"line": 5
},
{
"name": "status 200",
"result": {
"duration": 16100,
"status": "passed"
},
"match": {
"location": "karate",
"arguments": []
},
"keyword": "Then",
"line": 6
}
],
"tags": []
}
],
"name": "feature/main.feature",
"description": "Testing GET API",
"id": "testing-get-api",
"keyword": "Feature",
"uri": "feature/main.feature"
}
]
The TestRunner Class:
public class TestRunner {
@Test
void testParallel() {
ArrayList list = new ArrayList();
Results results = Runner.path("classpath:features/sample.feature").parallel(5);
Stream<FeatureResult> res = results.getFeatureResults();
res.forEach(action -> {
JSONObject jsonObj = new JSONObject(action.toCucumberJson());
System.out.println(jsonObj);
}
}
}
Sample Feature file:
Feature: Testing GET API
Scenario: GET Request
Given url 'https://reqres.in/api/users/2'
When method GET
Then status 200
Is there a way to get the json report as expected with the before and after keywords?