Giter Club home page Giter Club logo

cucumber-json's Introduction

cucumber-json

A Cucumber Output Formatter that generates JSON.

Feature: JSON formatter
  As a developer
  I want to receive reports of failing cucumber features in a parsable format
  In order to facilitace elegant continuous integration
  In order to protect revenue

Installation

gem install cucumber-json

Usage

In your project:

cucumber --format Cucumber::Formatter::JSON

Or, to output to a file:

cucumber --format Cucumber::Formatter::JSON --out path/to/filename

Parsing

The JSON generated is a hash that has 3 keys:

  • failing_features
    • an array of all failing features, in a format similar to the default cucumber format
  • features
    • an array of all features, in a format similar to the default cucumber format
  • status_counts
    • a hash of statuses, and the number of steps with that status

Additional information could be added to this hash in the future; this is just what I needed at the moment.

Example

The output of this project's cucumber features have been run through the Cucumber::Formatter::JSON formatter and included at examples/features.json. This was generated like so:

cucumber -f Cucumber::Formatter::JSON --out examples/features.json

Author

Jesse Newland

License

MIT, same license as Ruby. See LICENSE for more details

cucumber-json's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

cucumber-json's Issues

it does not work for tables

The following patch illustrates the problem:
diff --git a/features/formatter.feature b/features/formatter.feature
index 084c14d..bd1198e 100644
--- a/features/formatter.feature
+++ b/features/formatter.feature
@@ -18,6 +18,9 @@ Feature: JSON formatter

       Given /passing/ do
       end
+
+      Given /a table/ do
+      end
       """
     And a file named "features/one_failure.feature" with:
       """
@@ -112,4 +115,23 @@ Feature: JSON formatter
   Scenario: All Features Passing
     When I run cucumber -r ../../../lib -r features/step_definitions -f Cucumber::Formatter::JSON features/all_passing.feature
     Then the output should contain "output['status_counts']['passed']" set to "2"
-    And the output should contain no failing features
\ No newline at end of file
+    And the output should contain no failing features
+
+  Scenario: All Features Passing with table
+    Given a file named "features/table_passing.feature" with:
+      """
+      Feature: Table Passing
+
+        Scenario: Passing
+          Given a table
+            | name | col1  | col2  |
+            | rowa | vala1 | vala2 |
+            | rowb | valb1 | valb2 |
+
+        Scenario: Passing2
+          Given passing
+
+      """
+    When I run cucumber -r ../../../lib -r features/step_definitions -f Cucumber::Formatter::JSON features/table_passing.featur
+    Then the output should contain "output['status_counts']['passed']" set to "2"
+    And the output should contain no failing features

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.