[
  {
    "description": "  As a cucumber user\n  I want to generate HTML reports from cucumber JSON report files\n  So that I can get a better overview of my specifications",
    "elements": [
      {
        "id": "report-generator;generate-report-using-default-template",
        "keyword": "Scenario",
        "line": 6,
        "name": "Generate report using default template",
        "steps": [
          {
            "arguments": [],
            "keyword": "Before ",
            "result": {
              "status": "passed",
              "duration": 5310
            },
            "hidden": true,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:15"
            }
          },
          {
            "arguments": [],
            "keyword": "Given ",
            "name": "a JSON file generated by cucumber",
            "result": {
              "status": "passed",
              "duration": 1132
            },
            "line": 7,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:29"
            }
          },
          {
            "arguments": [],
            "keyword": "And ",
            "name": "the destination directory is set to \"reports\"",
            "result": {
              "status": "passed",
              "duration": 177
            },
            "line": 8,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:35"
            }
          },
          {
            "arguments": [],
            "keyword": "And ",
            "name": "no template is provided",
            "result": {
              "status": "passed",
              "duration": 1115
            },
            "line": 9,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:40"
            }
          },
          {
            "arguments": [],
            "keyword": "When ",
            "name": "I run the report generator",
            "result": {
              "status": "passed",
              "duration": 33833
            },
            "line": 10,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:56"
            }
          },
          {
            "arguments": [],
            "keyword": "Then ",
            "name": "I should get a HTML report in the \"reports\" directory",
            "result": {
              "status": "passed",
              "duration": 526
            },
            "line": 11,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:61"
            }
          },
          {
            "arguments": [],
            "keyword": "After ",
            "result": {
              "status": "passed",
              "duration": 1186
            },
            "hidden": true,
            "embeddings": [
              {
                "data": "T3BlcmF0aW5nIFN5c3RlbSBQbGF0Zm9ybTogZGFyd2lu",
                "mime_type": "text/plain"
              },
              {
                "data": "T3BlcmF0aW5nIFN5c3RlbSBSZWxlYXNlIFZlcnNpb24gMTUuNS4w",
                "mime_type": "text/plain"
              }
            ],
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:22"
            }
          }
        ],
        "tags": []
      },
      {
        "id": "report-generator;generate-report-using-custom-template",
        "keyword": "Scenario",
        "line": 13,
        "name": "Generate report using custom template",
        "steps": [
          {
            "arguments": [],
            "keyword": "Before ",
            "result": {
              "status": "passed",
              "duration": 1842
            },
            "hidden": true,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:15"
            }
          },
          {
            "arguments": [],
            "keyword": "Given ",
            "name": "a JSON file generated by cucumber",
            "result": {
              "status": "passed",
              "duration": 1405
            },
            "line": 14,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:29"
            }
          },
          {
            "arguments": [],
            "keyword": "And ",
            "name": "the destination directory is set to \"reports\"",
            "result": {
              "status": "passed",
              "duration": 504
            },
            "line": 15,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:35"
            }
          },
          {
            "arguments": [],
            "keyword": "And ",
            "name": "a custom template is provided",
            "result": {
              "status": "passed",
              "duration": 529
            },
            "line": 16,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:50"
            }
          },
          {
            "arguments": [],
            "keyword": "When ",
            "name": "I run the report generator",
            "result": {
              "status": "passed",
              "duration": 5643
            },
            "line": 17,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:56"
            }
          },
          {
            "arguments": [],
            "keyword": "Then ",
            "name": "I should get a HTML report in the \"reports\" directory",
            "result": {
              "status": "passed",
              "duration": 191
            },
            "line": 18,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:61"
            }
          },
          {
            "arguments": [],
            "keyword": "After ",
            "result": {
              "status": "passed",
              "duration": 320
            },
            "hidden": true,
            "embeddings": [
              {
                "data": "T3BlcmF0aW5nIFN5c3RlbSBQbGF0Zm9ybTogZGFyd2lu",
                "mime_type": "text/plain"
              },
              {
                "data": "T3BlcmF0aW5nIFN5c3RlbSBSZWxlYXNlIFZlcnNpb24gMTUuNS4w",
                "mime_type": "text/plain"
              }
            ],
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:22"
            }
          }
        ],
        "tags": []
      },
      {
        "id": "report-generator;verify-source-json-exists",
        "keyword": "Scenario",
        "line": 20,
        "name": "Verify source JSON exists",
        "steps": [
          {
            "arguments": [],
            "keyword": "Before ",
            "result": {
              "status": "passed",
              "duration": 838
            },
            "hidden": true,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:15"
            }
          },
          {
            "arguments": [],
            "keyword": "Given ",
            "name": "no JSON file is provided",
            "result": {
              "status": "passed",
              "duration": 228
            },
            "line": 21,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:67"
            }
          },
          {
            "arguments": [],
            "keyword": "When ",
            "name": "I run the report generator",
            "result": {
              "status": "passed",
              "duration": 6212
            },
            "line": 22,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:56"
            }
          },
          {
            "arguments": [],
            "keyword": "Then ",
            "name": "I should get an error message",
            "result": {
              "status": "passed",
              "duration": 452
            },
            "line": 23,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:72"
            }
          },
          {
            "arguments": [],
            "keyword": "After ",
            "result": {
              "status": "passed",
              "duration": 270
            },
            "hidden": true,
            "embeddings": [
              {
                "data": "T3BlcmF0aW5nIFN5c3RlbSBQbGF0Zm9ybTogZGFyd2lu",
                "mime_type": "text/plain"
              },
              {
                "data": "T3BlcmF0aW5nIFN5c3RlbSBSZWxlYXNlIFZlcnNpb24gMTUuNS4w",
                "mime_type": "text/plain"
              }
            ],
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:22"
            }
          }
        ],
        "tags": []
      },
      {
        "id": "report-generator;verify-template-exists",
        "keyword": "Scenario",
        "line": 25,
        "name": "Verify template exists",
        "steps": [
          {
            "arguments": [],
            "keyword": "Before ",
            "result": {
              "status": "passed",
              "duration": 675
            },
            "hidden": true,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:15"
            }
          },
          {
            "arguments": [],
            "keyword": "Given ",
            "name": "a JSON file generated by cucumber",
            "result": {
              "status": "passed",
              "duration": 383
            },
            "line": 26,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:29"
            }
          },
          {
            "arguments": [],
            "keyword": "And ",
            "name": "an invalid template is provided",
            "result": {
              "status": "passed",
              "duration": 262
            },
            "line": 27,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:45"
            }
          },
          {
            "arguments": [],
            "keyword": "When ",
            "name": "I run the report generator",
            "result": {
              "status": "passed",
              "duration": 1287
            },
            "line": 28,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:56"
            }
          },
          {
            "arguments": [],
            "keyword": "Then ",
            "name": "I should get an error message",
            "result": {
              "status": "passed",
              "duration": 333
            },
            "line": 29,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:72"
            }
          },
          {
            "arguments": [],
            "keyword": "After ",
            "result": {
              "status": "passed",
              "duration": 205
            },
            "hidden": true,
            "embeddings": [
              {
                "data": "T3BlcmF0aW5nIFN5c3RlbSBQbGF0Zm9ybTogZGFyd2lu",
                "mime_type": "text/plain"
              },
              {
                "data": "T3BlcmF0aW5nIFN5c3RlbSBSZWxlYXNlIFZlcnNpb24gMTUuNS4w",
                "mime_type": "text/plain"
              }
            ],
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:22"
            }
          }
        ],
        "tags": []
      }
    ],
    "id": "report-generator",
    "keyword": "Feature",
    "line": 1,
    "name": "Report Generator",
    "tags": [],
    "uri": "/Users/username/dev/cws/cucumber-html-report/features/report.feature"
  },
  {
    "elements": [
      {
        "id": "report-summary-module;calculate-summary-for-a-report",
        "keyword": "Scenario",
        "line": 3,
        "name": "Calculate summary for a report",
        "steps": [
          {
            "arguments": [],
            "keyword": "Before ",
            "result": {
              "status": "passed",
              "duration": 1803
            },
            "hidden": true,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:15"
            }
          },
          {
            "arguments": [],
            "keyword": "Given ",
            "name": "a valid JSON file",
            "result": {
              "status": "passed",
              "duration": 679
            },
            "line": 4,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/summary.steps.js:8"
            }
          },
          {
            "arguments": [],
            "keyword": "When ",
            "name": "I calculate the summary",
            "result": {
              "status": "passed",
              "duration": 238
            },
            "line": 5,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/summary.steps.js:13"
            }
          },
          {
            "arguments": [],
            "keyword": "Then ",
            "name": "it should return number of features",
            "result": {
              "status": "passed",
              "duration": 1854
            },
            "line": 6,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/summary.steps.js:18"
            }
          },
          {
            "arguments": [],
            "keyword": "And ",
            "name": "it should return number of scenarios",
            "result": {
              "status": "passed",
              "duration": 176
            },
            "line": 7,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/summary.steps.js:22"
            }
          },
          {
            "arguments": [],
            "keyword": "And ",
            "name": "it should return number of passed scenarios",
            "result": {
              "status": "passed",
              "duration": 174
            },
            "line": 8,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/summary.steps.js:27"
            }
          },
          {
            "arguments": [],
            "keyword": "And ",
            "name": "it should return number of failed scenarios",
            "result": {
              "status": "passed",
              "duration": 164
            },
            "line": 9,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/summary.steps.js:32"
            }
          },
          {
            "arguments": [],
            "keyword": "And ",
            "name": "it should return the status",
            "result": {
              "status": "passed",
              "duration": 217
            },
            "line": 10,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/summary.steps.js:37"
            }
          },
          {
            "arguments": [],
            "keyword": "After ",
            "result": {
              "status": "passed",
              "duration": 361
            },
            "hidden": true,
            "embeddings": [
              {
                "data": "T3BlcmF0aW5nIFN5c3RlbSBQbGF0Zm9ybTogZGFyd2lu",
                "mime_type": "text/plain"
              },
              {
                "data": "T3BlcmF0aW5nIFN5c3RlbSBSZWxlYXNlIFZlcnNpb24gMTUuNS4w",
                "mime_type": "text/plain"
              }
            ],
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:22"
            }
          }
        ],
        "tags": []
      },
      {
        "id": "report-summary-module;get-status-of-a-passing-feature",
        "keyword": "Scenario",
        "line": 12,
        "name": "Get status of a passing feature",
        "steps": [
          {
            "arguments": [],
            "keyword": "Before ",
            "result": {
              "status": "passed",
              "duration": 517
            },
            "hidden": true,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:15"
            }
          },
          {
            "arguments": [],
            "keyword": "Given ",
            "name": "a feature with a passing scenario",
            "result": {
              "status": "passed",
              "duration": 516
            },
            "line": 13,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/summary.steps.js:42"
            }
          },
          {
            "arguments": [],
            "keyword": "Then ",
            "name": "it should return status \"passed\" for feature",
            "result": {
              "status": "passed",
              "duration": 281
            },
            "line": 14,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/summary.steps.js:57"
            }
          },
          {
            "arguments": [],
            "keyword": "After ",
            "result": {
              "status": "passed",
              "duration": 306
            },
            "hidden": true,
            "embeddings": [
              {
                "data": "T3BlcmF0aW5nIFN5c3RlbSBQbGF0Zm9ybTogZGFyd2lu",
                "mime_type": "text/plain"
              },
              {
                "data": "T3BlcmF0aW5nIFN5c3RlbSBSZWxlYXNlIFZlcnNpb24gMTUuNS4w",
                "mime_type": "text/plain"
              }
            ],
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:22"
            }
          }
        ],
        "tags": []
      },
      {
        "id": "report-summary-module;get-status-of-a-failing-feature",
        "keyword": "Scenario",
        "line": 16,
        "name": "Get status of a failing feature",
        "steps": [
          {
            "arguments": [],
            "keyword": "Before ",
            "result": {
              "status": "passed",
              "duration": 357
            },
            "hidden": true,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:15"
            }
          },
          {
            "arguments": [],
            "keyword": "Given ",
            "name": "a feature with a failing scenario",
            "result": {
              "status": "passed",
              "duration": 511
            },
            "line": 17,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/summary.steps.js:47"
            }
          },
          {
            "arguments": [],
            "keyword": "Then ",
            "name": "it should return status \"failed\" for feature",
            "result": {
              "status": "passed",
              "duration": 381
            },
            "line": 18,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/summary.steps.js:57"
            }
          },
          {
            "arguments": [],
            "keyword": "After ",
            "result": {
              "status": "passed",
              "duration": 572
            },
            "hidden": true,
            "embeddings": [
              {
                "data": "T3BlcmF0aW5nIFN5c3RlbSBQbGF0Zm9ybTogZGFyd2lu",
                "mime_type": "text/plain"
              },
              {
                "data": "T3BlcmF0aW5nIFN5c3RlbSBSZWxlYXNlIFZlcnNpb24gMTUuNS4w",
                "mime_type": "text/plain"
              }
            ],
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:22"
            }
          }
        ],
        "tags": []
      },
      {
        "id": "report-summary-module;get-status-of-a-passing-scenario",
        "keyword": "Scenario",
        "line": 20,
        "name": "Get status of a passing scenario",
        "steps": [
          {
            "arguments": [],
            "keyword": "Before ",
            "result": {
              "status": "passed",
              "duration": 578
            },
            "hidden": true,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:15"
            }
          },
          {
            "arguments": [],
            "keyword": "Given ",
            "name": "a feature with a passing scenario",
            "result": {
              "status": "passed",
              "duration": 111
            },
            "line": 21,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/summary.steps.js:42"
            }
          },
          {
            "arguments": [],
            "keyword": "Then ",
            "name": "it should return status \"passed\" for scenario",
            "result": {
              "status": "passed",
              "duration": 317
            },
            "line": 22,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/summary.steps.js:63"
            }
          },
          {
            "arguments": [],
            "keyword": "After ",
            "result": {
              "status": "passed",
              "duration": 256
            },
            "hidden": true,
            "embeddings": [
              {
                "data": "T3BlcmF0aW5nIFN5c3RlbSBQbGF0Zm9ybTogZGFyd2lu",
                "mime_type": "text/plain"
              },
              {
                "data": "T3BlcmF0aW5nIFN5c3RlbSBSZWxlYXNlIFZlcnNpb24gMTUuNS4w",
                "mime_type": "text/plain"
              }
            ],
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:22"
            }
          }
        ],
        "tags": []
      },
      {
        "id": "report-summary-module;get-status-of-a-failed-scenario",
        "keyword": "Scenario",
        "line": 24,
        "name": "Get status of a failed scenario",
        "steps": [
          {
            "arguments": [],
            "keyword": "Before ",
            "result": {
              "status": "passed",
              "duration": 420
            },
            "hidden": true,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:15"
            }
          },
          {
            "arguments": [],
            "keyword": "Given ",
            "name": "a feature with a failing scenario",
            "result": {
              "status": "passed",
              "duration": 178
            },
            "line": 25,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/summary.steps.js:47"
            }
          },
          {
            "arguments": [],
            "keyword": "Then ",
            "name": "it should return status \"failed\" for scenario",
            "result": {
              "status": "passed",
              "duration": 655
            },
            "line": 26,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/summary.steps.js:63"
            }
          },
          {
            "arguments": [],
            "keyword": "After ",
            "result": {
              "status": "passed",
              "duration": 214
            },
            "hidden": true,
            "embeddings": [
              {
                "data": "T3BlcmF0aW5nIFN5c3RlbSBQbGF0Zm9ybTogZGFyd2lu",
                "mime_type": "text/plain"
              },
              {
                "data": "T3BlcmF0aW5nIFN5c3RlbSBSZWxlYXNlIFZlcnNpb24gMTUuNS4w",
                "mime_type": "text/plain"
              }
            ],
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:22"
            }
          }
        ],
        "tags": []
      },
      {
        "id": "report-summary-module;get-status-of-a-skipped-scenario",
        "keyword": "Scenario",
        "line": 28,
        "name": "Get status of a skipped scenario",
        "steps": [
          {
            "arguments": [],
            "keyword": "Before ",
            "result": {
              "status": "passed",
              "duration": 3497
            },
            "hidden": true,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:15"
            }
          },
          {
            "arguments": [],
            "keyword": "Given ",
            "name": "a feature with a skipped scenario",
            "result": {
              "status": "passed",
              "duration": 524
            },
            "line": 29,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/summary.steps.js:52"
            }
          },
          {
            "arguments": [],
            "keyword": "Then ",
            "name": "it should return status \"failed\" for scenario",
            "result": {
              "status": "passed",
              "duration": 134
            },
            "line": 30,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/summary.steps.js:63"
            }
          },
          {
            "arguments": [],
            "keyword": "After ",
            "result": {
              "status": "passed",
              "duration": 544
            },
            "hidden": true,
            "embeddings": [
              {
                "data": "T3BlcmF0aW5nIFN5c3RlbSBQbGF0Zm9ybTogZGFyd2lu",
                "mime_type": "text/plain"
              },
              {
                "data": "T3BlcmF0aW5nIFN5c3RlbSBSZWxlYXNlIFZlcnNpb24gMTUuNS4w",
                "mime_type": "text/plain"
              }
            ],
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:22"
            }
          }
        ],
        "tags": []
      },
      {
        "id": "report-summary-module;get-status-of-a-undefined-scenario",
        "keyword": "Scenario",
        "line": 32,
        "name": "Get status of a undefined scenario",
        "steps": [
          {
            "arguments": [],
            "keyword": "Before ",
            "result": {
              "status": "passed",
              "duration": 675
            },
            "hidden": true,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:15"
            }
          },
          {
            "arguments": [],
            "keyword": "Given ",
            "name": "a feature with a undefined scenario",
            "result": {
              "status": "undefined"
            },
            "line": 33
          },
          {
            "arguments": [],
            "keyword": "Then ",
            "name": "it should return status \"failed\" for scenario",
            "result": {
              "status": "skipped"
            },
            "line": 34,
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/summary.steps.js:63"
            }
          },
          {
            "arguments": [],
            "keyword": "After ",
            "result": {
              "status": "passed",
              "duration": 295
            },
            "hidden": true,
            "embeddings": [
              {
                "data": "T3BlcmF0aW5nIFN5c3RlbSBQbGF0Zm9ybTogZGFyd2lu",
                "mime_type": "text/plain"
              },
              {
                "data": "T3BlcmF0aW5nIFN5c3RlbSBSZWxlYXNlIFZlcnNpb24gMTUuNS4w",
                "mime_type": "text/plain"
              }
            ],
            "match": {
              "location": "/Users/username/dev/cws/cucumber-html-report/features/step_definitions/report.steps.js:22"
            }
          }
        ],
        "tags": []
      }
    ],
    "id": "report-summary-module",
    "keyword": "Feature",
    "line": 1,
    "name": "Report Summary module",
    "tags": [],
    "uri": "/Users/username/dev/cws/cucumber-html-report/features/summary.feature"
  }
]