Please see CONTRIBUTING.md on how to contribute to Cucumber.
Unreleased (In Git)
4.0.0 (2017-01-24)
- cucumber now waits for the event loop to drain before exiting. To exit immediately when the tests finish running use
--exit
. Use of this flag is discouraged. See here for more information - remove
--compiler
option. See here for the new way to use transpilers - remove binaries
cucumber.js
andcucumberjs
. Usecucumber-js
- can now use glob patterns for selecting what features to run
- update
--require
to support glob patterns - add
--require-module <NODE_MODULE>
to require node modules before support code is loaded - add snippet interface "async-await"
- add
--parallel <NUMBER_OF_SLAVES>
option to run tests in parallel. Note this is an experimental feature. See here for more information
- revert json formatter duration to nanoseconds
defineSupportCode
is deprecated. Require/import the individual methods insteadvar {defineSupportCode} = require('cucumber'); defineSupportCode(function({Given}) { Given(/^a step$/, function() {}); }); // Should be updated to var {Given} = require('cucumber'); Given(/^a step$/, function() {});
3.2.1 (2017-01-03)
- revert json formatter mime type (#995
3.2.0 (2017-12-08)
- add exception to
test-case-finished
event (#952 Giuseppe DiBella) - compiler option - allow
:
in module name to support specifying an absolute path on Windows (#958 Darrin Holst) - json formatter: format step result exception (#973 Valerio Innocenti Sedili)
3.1.0 (2017-10-25)
- add
--language
cli option to provide the default language for feature files
- pickle filter: support relative paths (#962 Marco Muller)
3.0.6 (2017-10-18)
- cli: fix
--format
option parsing on Windows (#954 Darrin Holst)
3.0.5 (2017-10-14)
defineParameterType
: Thetransformer
function'sthis
object is now the current World (as long as it's not an arrow function). (#948 Aslak Hellesøy)Before
/After
: The first argument now includes apickle
property which can be used to get the name / tags of the running scenario. (#947 Giuseppe DiBella)
3.0.4 (2017-10-04)
- cli: make
--tags
option repeatable (joined withand
) (#940, Ilya Kozhevnikov) - rerun formatter: make separator configurable. See docs here (#930, Máté Karácsony)
3.0.3 (2017-09-23)
3.0.2 (2017-09-13)
defineParameterType
: new optionsuseForSnippets
andpreferForRegexpMatch
. Please see documentation for usage.
- fix
usage
andusage-json
formatters when there are undefined steps
defineParameterType
:typeName
option is deprecated in favor ofname
3.0.1 (2017-08-28)
- JSON formatter: add type to scenario (#893, szymonprz)
- BeforeAll/AfterAll hooks: fix timeout support (#899)
- format output paths: allow absolute paths (#906, Darrin Holst)
- Before/After: fix undefined hook parameter (#919)
- update nodejs example (#898, João Guilherme Farias Duda)
- fix typo and make punctuation consistent (#909, Dmitry Shirokov)
- normalize CHANGELOG (#915, Jayson Smith)
3.0.0 (2017-08-08)
pretty
formatter has been removed. All errors are now reported in apretty
format instead. Theprogress
formatter is now the default.- Major changes to custom formatter and custom snippet syntax APIs due to rewrite in support of the event protocol. Please see the updated documentation.
- Remove
registerHandler
andregisterListener
. UseBeforeAll
/AfterAll
for setup code. Use the event protocol formatter if used for reporting. Please open an issue if you have another use case. - Remove deprecated
addTransform
. UsedefineParameterType
instead. cucumber-expressions
:- using an undefined parameter type now results in an error
{stringInDoubleQuotes}
is now{string}
which works for strings in single or double quotes
- Undefined steps fail the build in non-strict mode. Non-strict mode only allows pending steps now.
- Add
--i18n-languages
and--i18n-keywords <ISO 639-1>
CLI options - Add
BeforeAll
/AfterAll
hooks for suite level setup / teardown - Add event protocol formatter
cucumber-expressions
:- Add built in
{word}
parameter type which is equivalent to[A-Za-z0-9_]+
- Allow multiple parameter types to use the same regular expression
- Add built in
- Improve error message when using multiple asynchronous interfaces
- Fix support code line and uri references when using direct imports
2.3.1 (2017-06-09)
- pass step specific options to definition function wrapper (#838, Łukasz Gandecki)
2.3.0 (2017-06-01)
- Add support code aliases for every method in the support code API. The following are now equivalent:
(Nico Jansen and Łukasz Gandecki)
// Using defineSupportCode var {defineSupportCode} = require('cucumber'); defineSupportCode(function({Given}) { Given(/^a step$/, function() {}); }); // Using aliases var {Given} = require('cucumber'); Given(/^a step$/, function() {});
2.2.0 (2017-05-20)
- Add
progress-bar
formatter inspired by fuubar-cucumber and fuubar which outputs a progress bar and errors as they happen
2.1.0 (2017-05-12)
- throw descriptive error message when running a global install
1.3.3 (2016-04-26)
- fix unhandled rejections in handlers (#792, yaronassa)
1.3.2 (2016-03-20)
- dependency: fix use of gherkin to not rely on removed field
2.0.0-rc.9 (2017-03-16)
- dependency: fix use of gherkin to not rely on removed field
2.0.0-rc.8 (2017-03-10)
- generated step definition snippets are not found (#732, Aslak Hellesøy)
- catch attempt to define duplicate parameter type regular expression (#780, Aslak Hellesøy)
- catch errors in parameter type transform functions (Aslak Hellesøy)
- all async parameter type transform functions (Aslak Hellesøy)
- make all formatters available when requiring
addTransform
was deprecated in favor ofdefineParameterType
- normalize syntax highlighting (#726, Martin Delille)
- fix setWorldConstructor example
2.0.0-rc.7 (2017-01-30)
- fix after hook run order (#743)
2.0.0-rc.6 (2017-01-06)
- usage and usage-json formatters
- update error reporting for
registerHandler
errors - add ability to disable timeout
- update snippets to new support code interface
2.0.0-rc.5 (2016-12-22)
- Drop support for Node 0.12
- format assertion errors to display diffs
- fix CLI format-options name (#703, Florian Ribon)
- add link on README.md to custom formatters documentation
2.0.0-rc.4 (2016-12-19)
-
update support code library interface - instead of exporting a function and calling methods on
this
, require thecucumber
module and calldefineSupportCode
which passes an object as the first argument whch exposes the methods. Overriding the world constructor has changed from overriding the World property to callingsetWorldConstructor
.// 1.3.1 module.exports = function () { this.Given(/^a step$/, function() {}); this.World = CustomWorld }); // 2.0.0 var {defineSupportCode} = require('cucumber'); defineSupportCode(function({Given, setWorldConstructor}) { Given(/^a step$/, function() {}); setWorldConstructor(CustomWorld); });
2.0.0-rc.3 (2016-12-19)
- make strict the default
- previously pending and undefined steps did not cause an exit code of 1. This could be overridden with
--strict
. Strict is now the default and you can use--no-strict
to return to the previous behavior.
- previously pending and undefined steps did not cause an exit code of 1. This could be overridden with
- update automatically required files
- if the features live in a
features
directory at any level, all support files in thefeatures
directory are loaded.
- if the features live in a
- prevent crash on empty feature file
- validate argument types
- docs: fix tag expression migration guide (#691, Aslak Hellesøy)
2.0.0-rc.2 (2016-12-04)
- pass
attach
to world constructor instead of assigning it to world- the world constructor now receives
{attach, parameters}
as the first argument instead ofparameters
- the world constructor now receives
- json formatter: add
isBackground
to steps
- clear timeouts of asynchronous hooks/steps
- stop running features with no scenarios
- update node js example
2.0.0-rc.1 (2016-11-25)
- fix browser version
2.0.0-rc.0 (2016-11-25)
- Dropped support for Node 0.10
- CLI
--colors / --no-colors
has moved to--format-options '{"colorsEnabled": "<BOOLEAN>"}'
--require <DIR|FILE>
: the required files are no longer reordered to require anything in asupport
directory first--snippet-interface <INTERFACE>
has moved to--format-options '{"snippetInterface": "<INTERFACE>"}'
--snippet-syntax <SYNTAX>
has moved to--format-options '{"snippetSyntax": "<SYNTAX>"}'
--tags <EXPRESSION>
now uses cucumber-tag-expressions. It is no longer repeatable and new values will override previous--tags @dev
stays the same--tags ~@dev
becomes--tags 'not @dev'
--tags @foo,@bar
becomes--tags '@foo or @bar'
--tags @foo --tags @bar
becomes--tags '@foo and @bar'
- Internals
- complete rewrite using ES2015 and promises
- JSON Formatter
- String attachments are no longer base64 encoded. Buffer and Stream attachments are still base64 encoded.
- Support Files
-
Attachments
-
The
attach
function used for adding attachments moved from the API scenario object to world. It is thus now available in step definitions without saving a reference to the scenario.// 1.3.0 this.After(function(scenario, callback) { scenario.attach(new Buffer([137, 80, 78, 71]), 'image/png') }); // 2.0.0 this.After(function() { this.attach(new Buffer([137, 80, 78, 71]), 'image/png'); });
-
When attaching buffers or strings, the callback argument is ignored.
-
-
Hooks
-
Hooks now receive a ScenarioResult instead of the Scenario
// 1.3.0 this.After(function(scenario) {}); // 2.0.0 this.After(function(scenarioResult) {});
-
The
tags
option for hook should now be a string instead of an array and uses cucumber-tag-expressions// 1.3.0 this.Before({tags: ["@foo"]}, function (scenario) {}) this.Before({tags: ["@foo,@bar"]}, function (scenario) {}) this.Before({tags: ["@foo", "@bar"]}, function (scenario) {}) // 2.0.0 this.Before({tags: "@foo"}, function (scenario) {}) this.Before({tags: "@foo and @bar"}, function (scenario) {}) this.Before({tags: "@foo or @bar"}, function (scenario) {})
-
-
Step Definitions
- String patterns were removed in favor cucumber-expressions
- Regular Expressions
- capture groups matching
(-?\d+)
will be automatically converted to an integer usingparseInt
- capture groups matching
(-?\d*\.?\d+)
will be automatically converted to a float usingparseFloat
- capture groups matching
- Generator functions are no longer automatically run with
co
. To retain the previous functionality, use this.setDefinitionFunctionWrapper
-
Event Handlers
- Objects no longer have
get*
methods and instead have exposed properties- For example:
scenario.getName()
is now justscenario.name
- For example:
StepResult
duration is now in milliseconds instead of nanoseconds
- Objects no longer have
-
- remove empty lines from
@rerun
files (#660, Cody Ray Hoeft) - catch uncaught errors in the browser (Charlie Rudolph)
- Support Files
- Attachments:
- When attaching a stream, the interface can either accept a callback as a third argument or will return a promise if not passed a callback
- Step Definitions
- Ability to add custom argument transformations
- Attachments:
- Fail fast / rerun formatter
- When used together rerun formatter will output all skipped scenarios that didn't run due to a failure
1.3.1 (2016-09-30)
- pass formatter options to listener (#641, Charlie Rudolph)
- rerun formatter: output any scenario that doesn't pass (Charlie Rudolph)
- populate scenario definition (#647, Charlie Rudolph)
- handle empty stacktraces (#605, Hugues Malphettes)
- use cross-platform symbols (#635, Kevin Goslar)
- fix node.js example (#637, Jonathan Gomez)
- fix links in event_handlers.md (#638, Oliver Rogers)
- fix hooks example (#644, John McLaughlin)
1.3.0 (2016-09-08)
- add
--snippet-interface <INTERFACE>
CLI option (Charlie Rudolph) - add
--world-parameters <JSON>
CLI option (Charlie Rudolph) - add snippets formatter (Charlie Rudolph)
- add support for ES6 default module syntax (dbillingham)
- pretty formatter: add symbols (Charlie Rudolph)
- add simplified hook parameters (Charlie Rudolph)
- step definition snippets internationalization (Charlie Rudolph)
- document order of execution for multiple hooks (John McLaughlin)
- breakup README.md, organize docs (Charlie Rudolph)
1.2.2 (2016-08-05)
- Fix error when stack trace has no frames (#610, Jan Molak)
1.2.1 (2016-07-01)
1.2.0 (2016-06-24)
- Attachments
- Remove intermediate conversion to string (Charlie Rudolph)
- Use native base64 encoding which can encode binary (#589, Benjamín Eidelman)
1.1.0 (2016-06-23)
- Add full support to
registerHandler
(Charlie Rudolph)- Can now use all supported functions interfaces (synchronous, callback, promise, generators)
- Will throw any error received and immediately kill the test suite
- Supports handler specific timeouts
- Updated documentation
- CLI format: support absolute path on windows (Charlie Rudolph)
- Fix typo in event name. (#590, Artur Pomadowski)
- Don't run hooks in dry run mode (Charlie Rudolph)
1.0.0 (2016-05-30)
- Escape all instances of special characters in example / data table (Charlie Rudolph)
0.10.4 (2016-05-30)
- Allow time to be faked by utilities such as
sinon.useFakeTimers
(John McLaughlin)
0.10.3 (2016-05-19)
- Escape newlines in table cells in pretty formatter (Julien Biezemans)
- Fix handling of unusual error objects (efokschaner)
0.10.2 (2016-04-07)
- Add match location to JSON formatter output (Charlie Rudolph)
- Undefined background step (Scott Deakin)
0.10.1 (2016-04-01)
- Support generators for hooks/step definitions (Ádám Gólya)
0.10.0 (2016-04-01)
-
removed around hooks (Charlie Rudolph)
- how to update: use separate before and after hooks. If this is not sufficient, please create an issue.
-
updated pending step interface (Charlie Rudolph)
- how to update: change
callback.pending()
tocallback(null, 'pending')
or use one of the new pending step interfaces
- how to update: change
-
updated tagged hook interface (Charlie Rudolph)
-
how to update:
this.Before('@tagA', function() { ... }) // becomes this.Before({tags: ['@tagA']}, function() { ... }) this.Before('@tagA', '@tagB,@tagC', function() { ... }) // becomes this.Before({tags: ['@tagA', '@tagB,@tagC']}, function() { ... })
-
- support hook specific timeouts (Charlie Rudolph)
- reworked formatter error reporting (Charlie Rudolph)
0.9.5 (2016-02-16)
- Fix rerun formatter output (Charlie Rudolph)
- Allow rerun file to be in subfolder (Charlie Rudolph)
0.9.4 (2016-01-28)
- Publish release folder to npm (Charlie Rudolph)
0.9.3 (2016-01-27)
- Run scenario by name (Charlie Rudolph)
- Prevent maximum call stack from being exceeded (John Krull)
- Add documentation of profiles (Charlie Rudolph)
- README improvements (Miika Hänninen, Kevin Goslar, Maxim Koretskiy)
- Bump stack-chain (Rick Lee-Morlang)
- Add rerun formatter (Charlie Rudolph)
- Add ability to execute scenario outline example (Charlie Rudolph)
- Support tags on scenario outline examples (Charlie Rudolph)
- Fix invalid hook documentation (Charlie Rudolph)
- catch ambiguous step definitions (Charlie Rudolph)
- remove use of domain (Charlie Rudolph)
- pretty formatter: source shows step definition location (Charlie Rudolph)
- support node 5 (Charlie Rudolph)
- Fix
Api.Scenario#attach
callback handling (Julien Biezemans)
- Add async example to README (Artem Bronitsky)
- Document hooks sync/async protocols (Julien Biezemans)
- Remove useless callbacks in documentation (Julien Biezemans)
- Fix browser example (Karine Pires)
- Update World constructor documentation (Charlie Rudolph)
- Remove badges from README.md (Charlie Rudolph)
- Add strict function length checking to hooks and step definitions (Charlie Rudolph)
- Make World constructors strictly synchronous (Julien Biezemans)
- Add cli option to fail fast (Charlie Rudolph)
- Add cli for specifying multiple formatters (Charlie Rudolph)
- Add support for passing multiple line numbers (Charlie Rudolph)
- Add ability to disable colors (Charlie Rudolph)
- Add support for custom snippet syntaxes (Charlie Rudolph)
- Hide errors in pretty formatter summary (Charlie Rudolph)
- Remove unnecessary whitespaces in pretty formatter output (Charlie Rudolph)
- Properly ask configurations for strict mode (Julien Biezemans)
- Document data table interface (Charlie Rudolph)
- Refactor: statuses (Charlie Rudolph)
- Refactor: cleanup step definitions (Charlie Rudolph)
- Cleanup: remove log to console from listeners (Charlie Rudolph)
- Use svg badges (Charlie Rudolph)
- Rename CONTRIBUTE.md to CONTRIBUTING.md (Julien Biezemans)
- Require maintainers to document API changes in release tag descriptions (Julien Biezemans)
- Add build-release NPM script (Julien Biezemans)
- Time out steps that take too long (Charles Rudolph)
- Print execution time (Charles Rudolph)
- Remove callback.fail() (Charles Rudolph)
- Update hooks interface (Charles Rudolph)
- Don't try to handle empty features (Julien Biezemans)
- Fix unpredictable nopt behavior (Charles Rudolph)
- Fix pretty formatter step indentation after doc string (Charles Rudolph)
- Rename Collection functions: forEach/syncForEach -> asyncForEach/forEach (Charles Rudolph)
- Simplify installation instructions (Charles Rudolph)
- Fix spec on Windows (Marcel Hoyer)
- Simplify World examples in README (Charles Rudolph)
- Update license in package.json (Charles Rudolph)
- Convert test framework from jasmine-node to jasmine (Charles Rudolph)
- Separate test output (Charles Rudolph)
- Remove ruby, legacy features, cucumber-tck (Charles Rudolph)
- Add --no-source to hide uris (Eddie Loeffen)
- Add dry run capability (Karthik Viswanath)
- Introduce --compiler CLI option (Charles Rudolph)
- Stop IRC and email notifications from Travis (Julien Biezemans)
- Remove Node.js 0.11 explicit support (Julien Biezemans)
- Use basic for loop for array iterations (Charles Rudolph)
- Bump browserify (Charles Rudolph)
- Add CLI help for --profile (Charles Rudolph)
- Use colors library (Charles Rudolph)
- Improve --compiler help (Julien Biezemans)
- Fix loading of external compiler modules (Julien Biezemans)
- Document a few common compiler usages (Julien Biezemans)
- Add support for profiles (Charles Rudolph)
- Allow for multiple instances of placeholder (Charles Rudolph)
- Print relative paths in summary output (Charles Rudolph)
- Remove duplicate line number from output (Charles Rudolph)
- Return clone of array from DataTable.Row.raw() (Julien Biezemans)
- Update various urls (Dale Gardner)
- Bump CoffeeScript (Julien Biezemans)
- Bump PogoScript (Julien Biezemans)
- Bump underscore (Julien Biezemans)
- Bump underscore.string (Julien Biezemans)
- Bump stack-chain (Julien Biezemans)
- Bump nopt (Julien Biezemans)
- Bump connect (Julien Biezemans)
- Bump exorcist (Julien Biezemans)
- Bump uglifyify (Julien Biezemans)
- Bump through (Julien Biezemans)
- Bump serve-static (Julien Biezemans)
- Bump rimraf (Julien Biezemans)
- Bump mkdirp (Julien Biezemans)
- Bump jshint (Julien Biezemans)
- Remove extra bracket in README example (Julien Biezemans)
- Officially support Node.js 4.x (Julien Biezemans)
- Use a profile for own build (Julien Biezemans)
- Add rowsHash method to data tables (Mark Amery)
- Remove CLI resource leak timeout (Julien Biezemans)
- Point to cucumber.io instead of cukes.info (Julien Biezemans)
- Fix mixed tabs and spaces (Mark Amery)
- Use hexadecimal values for console colours (Julien Biezemans)
- Update walkdir module to 0.0.10 (Artem Repko)
- Fix ruby tests on Windows (zs-zs)
- Fix npm test to run on Windows (zs-zs)
- Normalize OS-specific path separators in output assertions (zs-zs)
- Relax check for promises in step definitions (zs-zs)
- Add Ast.Feature.getFeatureElements() (Mark Derbecker)
- Add Util.Collection.sort() (Mark Derbecker)
- Add waffle.io badge (Julien Biezemans)
- Support placeholders in scenario outlines (chrismilleruk)
- Add failure exception to scenario object (Mateusz Derks)
- Fix World example in README (Julien Biezemans)
- Remove moot
version
property from bower.json (Kevin Kirsche) - Remove obsolete release instruction for bower (Julien Biezemans)
- Add Gitter badge (Julien Biezemans)
- Rephrase spec example (Julien Biezemans)
- Add documentation for attachments (Simon Dean)
- Fix name of Cucumber.Api.Scenario in README (Simon Dean)
- Support promises from step definitions (Will Farrell)
- Support synchronous step definitions (Julien Biezemans)
- Remove irrelevant feature file (Julien Biezemans)
- Reorganise callback feature (Julien Biezemans)
- Remove unused dependency (Julien Biezemans)
- Document new step definition styles (Julien Biezemans)
- Make step definitions synchronous in example app (Julien Biezemans)
- Make pretty formatter the default (Julien Biezemans)
- Filter stack traces (close #157, Julien Biezemans)
- Separate source map from bundle (Julien Biezemans)
- Hint (Julien Biezemans)
- Fix misspelling io.js (Sonny Piers)
- Add 0.12 to supported engines in NPM manifest (Julien Biezemans)
- Fix test script to be more portable (Sam Saccone)
- Force Cucumber <2 for now (Julien Biezemans)
- Bump Cucumber gem to 2.0.0 (Julien Biezemans)
- Explicitly require json module in Ruby stepdefs (Julien Biezemans)
- Add CLI help section for --backtrace (Julien Biezemans)
- Support IO.js (Sam Saccone)
- Support Node.js 0.12 (Julien Biezemans)
- Handle BOM and fix regexp for hyphenated languages (#144, Aslak Hellesøy)
- Fix attachment clean up in hooks (#282, nebehr)
- More thorough specs for GherkinLexer. Fix build? (Aslak Hellesøy)
- Add jshintrc (Jesse Harlin)
- Hint lib/ (Julien Biezemans)
- Hint bundler and bin (Julien Biezemans)
- Hint spec/ (Julien Biezemans)
- Be consistent in anonymous function syntax (Julien Biezemans)
- Use named functions for all constructors (Julien Biezemans)
- Indent (Julien Biezemans)
- Add more diagnostics to build (Julien Biezemans)
- Remove unnecessary spaces in shell commands (Julien Biezemans)
- Do not dispose of step domains (Julien Biezemans)
- Refactor and add debug code (Julien Biezemans)
- Create a single domain per run (Julien Biezemans)
- Add missing AstTreeWalker specs (Julien Biezemans)
- Indent (Julien Biezemans)
- Spec domain enter/exit in AstTreeWalker (Julien Biezemans)
- Add --no-snippets flag to CLI (close #207, Krispin Schulz)
- Add strict mode (close #211, Elwyn)
- Add strict mode to volatile configuration (close #258, Jan-Eric Duden)
- Fix code loader on windows (close #226, Gary Taylor)
- Connect to Rubygems through SSL (Julien Biezemans)
- Use Node domain's enter/exit in stepdefs (Julien Biezemans)
- Do not display snippets in build (Julien Biezemans)
- Asynchronously dispose of step domains (Julien Biezemans)
- Change order of tests in build (Julien Biezemans)
- Fix tests to run on Windows (close #216, kostya.misura)
- Fix registerHandler() example in README (Julien Biezemans)
- Fix typo in variable name (Julien Biezemans)
- Fix World property assignment in README example (Julian)
- Unix EOLs (Julien Biezemans)
- Ignore .ruby-* (Julien Biezemans)
- Fix issue with npm upgrade on node.js v0.8 (Simon Dean)
- Use Node domain to handle asynchronous exceptions (Julien Biezemans)
- Allow >1 parameter in string step definitions (Craig Morris)
- Don't skip scenario outlines (close #245, Julien Biezemans)
- Bump nopt (Julien Biezemans)
- Bump coffee-script (Julien Biezemans)
- Bump pogo (Julien Biezemans)
- Bump underscore (Julien Biezemans)
- Bump rimraf (Julien Biezemans)
- Bump jasmine-node (Julien Biezemans)
- Bump connect (Julien Biezemans)
- Rewrite bundling system (close #186, Julien Biezemans)
- Rename release script (Julien Biezemans)
- Upgrade NPM on Travis (Julien Biezemans)
- Drop Node 0.6 support (Julien Biezemans)
- Drop Node 0.6 support (manifest) (Julien Biezemans)
- Scenario outline fixes (Simon Dean)
- Correct the embeddings JSON to match other ports of Cucumber (Simon Dean)
- Support attachments (close #189, Julien Biezemans)
- Fix world example in main readme (Sam Saccone)
- Update instructings for running tests (Sam Saccone)
- Target scenario by line number on CLI (close #168, Simon Lampen)
- Ensure no stdout output is lost (Simon Dean)
- Properly tag scenario outlines (close #195, #197, Artur Kania)
- Align snippet comment with Cucumber-Ruby/JVM (close #150, Julien Biezemans)
- Update build badge URL on README (Julien Biezemans)
- Add line number pattern to --help on CLI (Julien Biezemans)
- Document AfterFeatures event (close #171, Eddie Loeffen)
- Include 'features' in *Features events payload (Stanley Shyiko)
- Try to fix build on Travis (Julien Biezemans)
- Remove bower as a dev dependency (close #191, Simon Dean)
- Remove obsolete Travis trick for Node 0.8 (Julien Biezemans)
- Remove development status table from README (Julien Biezemans)
- Help the guy produce changelogs (Julien Biezemans)
- Add support for scenario outlines and examples (close #155, Ben Van Treese)
- Add i18n support (close #156, Lukas Degener)
- Pass scenario to hooks (Marat Dyatko)
- Minor change to stepdef snippets (JS) (Julien Biezemans)
- Make feature id in JSON output replace all spaces (close #127, Tim Perry)
- Bump CoffeeScript (close #154, Gabe Hayes)
- Add Hook spec example for single-arg function (close #143, Julien Biezemans)
- Update README with Hook scenario object doc (Julien Biezemans)
- Style (Julien Biezemans)
- Output step definition snippets in CoffeeScript (John George Wright)
- Add colors to CLI (Johny Jose)
- Add durations to JSON formatter (Simon Dean)
- Bump most dependencies (Julien Biezemans)
- DRY (Julien Biezemans)
- Refactor (Julien Biezemans)
- Add PogoScript support (Josh Chisholm)
- Add listener and event handler registration (close #130, Paul Shannon)
- Added some nice stats (Aslak Hellesøy)
- Fix spelling of "GitHub" (Peter Suschlik)
- Add Code Climate badge to README (Julien Biezemans)
- Update README.md (Sebastian Schürmann)
- Add DataTable.rows() (Niklas Närhinen)
- Officially support Node 0.10 and 0.11 (Julien Biezemans)
- Update cucumber-html (Aslak Hellesøy)
- Bump Gherkin (Julien Biezemans)
- Add options parameter to JSON formatter (Israël Hallé)
- Updated CoffeeScript (Matteo Collina)
- Specify strict coffee-script version number (Julien Biezemans)
- Bump jasmine-node (Julien Biezemans)
- Fix travis build Node versions (Julien Biezemans)
- Fix Travis CI configuration (Julien Biezemans)
- Remove words in History (Julien Biezemans)
- Update dev status table in README (Julien Biezemans)
- Update LICENSE (Julien Biezemans)
- Add contributors (Julien Biezemans)
- Move data table scenario to TCK (Julien Biezemans)
- Be consistent in spec matchers (Julien Biezemans)
- Remove cucumber.no.de links (Kim, Jang-hwan)
- Fix broken link in README dev status table (#118, Michael Zedeler)
- Refactor hook-related Given steps in JS stepdefs (Julien Biezemans)
- Refactor failing mapping JS step definitions (Julien Biezemans & Matt Wynne)
- Update README.md to correct error in example for zombie initialization (Tom V)
- Update minor typos in README.md (David Godfrey)
- Allow for node-like callback errors (Julien Biezemans)
- Accept multiple features in volatile configuration (#52, Julien Biezemans)
- Add ^ prefix and $ suffix to string-based step definition regexps (#77, Julien Biezemans)
- Allow for unsafe regexp characters in stepdef string patterns (#77, Julien Biezemans)
- Build on Node.js 0.8 on Travis (Julien Biezemans)
- Rewrite README's status table in HTML (Julien Biezemans)
- Bump Gherkin (#78, Julien Biezemans)
- Switch to HTML tables in README (Julien Biezemans)
- Bump Aruba (Julien Biezemans)
- Exclude unmatched features from AST (#80, Julien Biezemans)
- Add bundler (Julien Biezemans)
TBD
- Add JSON formatter (#79, Chris Young)
- Fix data table and tags handling in JSON formatter (Julien Biezemans)
- Force example feature execution order in JSON feature (Julien Biezemans)
- Fix CLI arguments passing (#83, Omar Gonzalez)
- Refactor "summarizer" listener to summary formatter (#71, 28b74ef, Julien Biezemans)
- Add "summary" formatter to available CLI formatters (Julien Biezemans)
- Fix spec example description (Julien Biezemans)
- Replace findit with walkdir to fix file loading on Windows (#73, Aaron Garvey)
- Rename spec file (Julien Biezemans)
- Extract developer documentation from README to CONTRIBUTE (Julien Biezemans)
- Bump browserify (Julien Biezemans)
- Update supported Node.js versions (Julien Biezemans)
- Add pretty formatter (simplified, monochrome) (#59, @renier, Julien Biezemans)
- Display only master branch build status in README (Julien Biezemans)
- Rename "summary logger" to "summarizer" (#59, Julien Biezemans)
- Extract common formatter methods (#59, #63, Julien Biezemans)
- Display failing scenario URIs in summary (Julien Biezemans)
- Ran a gem update (Aslak Hellesøy)
- Update NPM dependencies (#69, Aslak Hellesøy)
- Refactor listener infrastructure (#35, #59, #63, Julien Biezemans)
- Extract summary logger from progress formatter (#59, #63, Julien Biezemans)
- Store URI on AST elements (Julien Biezemans)
- Handle asynchronous exceptions (#51, Julien Biezemans)
- Remove commented code (Julien Biezemans)
- Mention CS support in README (Julien Biezemans)
- Update command-line documentation in README (Julien Biezemans)
- Add alternate binary script for Windows (#60, Julien Biezemans)
- Add support for string-based step definition patterns (#48, Ted de Koning, Julien Biezemans)
- Pass step instance to step definition invocation (#57, Julien Biezemans)
- Refactor step result specs (Julien Biezemans)
- Store step on step results (#57, Julien Biezemans)
- Increase Aruba timeout delay for slow Travis (Julien Biezemans)
- Decouple pattern from regexp in step definition (#48, Julien Biezemans)
- Allow World constructor to set explicit World object (#50, Julien Biezemans)
- Add semicolons (Julien Biezemans)
- Add documentation about World to README (Julien Biezemans)
- Simplify World callbacks (#49, Julien Biezemans)
- Fix callback.fail() when called without any reasons (Julien Biezemans)
- Add toHaveBeenCalledWithInstanceOfConstructorAsNthParameter() spec helper (Julien Biezemans)
- Simplify default World constructor callback (Julien Biezemans)
- Adapt World constructors (Julien Biezemans)
- Fix path handling on Windows platforms (#47, Julien Biezemans)
- Add tagged hooks example to README (Julien Biezemans)
- Fix browserify setup for example page load (Julien Biezemans)
- Rename bundle to 'cucumber.js' in web example (Julien Biezemans)
- Remove obsolete browserify directive (Julien Biezemans)
- Improve platform detection (Julien Biezemans)
- Add support for tagged hooks (#32, Julien Biezemans)
- Allow for whitespaces in tag groups (Julien Biezemans)
- Add Cucumber.Type.String and String#trim(, Julien Biezemans)
- Remove unnecessary this. from stepdefs (Julien Biezemans)
- Simplify tag-related stepdefs (Julien Biezemans)
- Simplify tag selection syntax in volatile configuration (Julien Biezemans)
- Mark hooks "done" in README dev status (Julien Biezemans)
- Add around hooks (#32, Julien Biezemans)
- Treat undefined and skipped step as any other step (Julien Biezemans)
- Remove unused parameter in parser spec (Julien Biezemans)
- Add JS stepdef for async failing steps scenario (Julien Biezemans)
- Assign zombie in README example (#44, Julien Biezemans)
- Remove trailing spaces (Julien Biezemans)
- Get rid of obsolete PendingStepException (Julien Biezemans)
- Refactor SupportCode.Library spec (Julien Biezemans)
- Add around hooks documentation (#32, Julien Biezemans)
- Allow for asynchronous pending steps (Julien Biezemans)
- Allow for asynchronous step failures (Julien Biezemans)
- Fix matching groups in step definition snippets (#42, Julien Biezemans)
- Remove obsolete dependency from snippet builder spec (Julien Biezemans)
- Add steps to release process in README (Julien Biezemans)
- Update development status table in README (Julien Biezemans)
- Import implementation-specific scenarios from cucumber-tck/undefined_steps (Julien Biezemans)
- Switch from throwing exceptions to callback.fail() in web example (Julien Biezemans)
- Add callback.fail() example to README (Julien Biezemans)
- Handle missing instance in World constructor callback (#40, Julien Biezemans)
- Update development status in README (Julien Biezemans)
- Typo in README (Julien Biezemans)
- Refactor parser and add AST assembler (required by #7, Julien Biezemans)
- Indent properly (Julien Biezemans)
- Refactor AST assembler to be stateful (needed by #7, Julien Biezemans)
- Update master diff in History (Julien Biezemans)
- Add --tags documentation to --help (CLI, Julien Biezemans)
- Interpret "*" step keyword as a repeat keyword (Julien Biezemans)
- Add NPM publishing to README release checklist (Julien Biezemans)
- Add "Help & Support" to README (Julien Biezemans)
- Words in README (Julien Biezemans)
- Document before and after hooks (Julien Biezemans)
- Add --version to CLI (Julien Biezemans)
- Add --help to CLI (Julien Biezemans)
- Add styles for reported errors on web example (Julien Biezemans)
- Make and expect World constructors to be asynchronous (#39, Julien Biezemans)
- Update README (Julien Biezemans)
- Add development status to README (Julien Biezemans)
- Add link to demo at cucumber.no.de (Julien Biezemans)
- Add link to example app to README (Julien Biezemans)
- Add usage documentation to README (#23, Olivier Melcher)
- Add examples to run features with the CLI (Olivier Melcher)
- Fix header levels and whitespaces in README (Julien Biezemans)
- Add Opera to supported browsers in README (Julien Biezemans)
- Fix World constructor in README (Julien Biezemans)
- Simplify World#visit in README (Julien Biezemans)
- Rewrite step definition and wrapper documentation (Julien Biezemans)
- Remove useless words (Julien Biezemans)
- Use more consistent Markdown in README (Julien Biezemans)
- Fix Gherkin comment in README (Julien Biezemans)
- Add credits (Julien Biezemans)
- Add Aruba setup details to README (Julien Biezemans)
- Fix World constructor on web example according to the recent API changes (Julien Biezemans)
- Tell Travis CI to post build results to #cucumber (Julien Biezemans)
- Add release checklist to README (Julien Biezemans)
- Add support for Node 0.6 (Julien Biezemans)
- Prevent the same step definition snippet from being suggested twice (Julien Biezemans)
- Don't make NPM ignore
example/
anymore (Julien Biezemans) - Bump cucumber-features (Julien Biezemans)
- Use non-deprecated "url" key instead of "web" in NPM manifest (Julien Biezemans)
- Add JS step definitions related to data table scenarios (Julien Biezemans)
- Move from cucumber-features to cucumber-tck (Julien Biezemans)
- Bump Gherkin (Julien Biezemans)
- Bump jasmine-node (Julien Biezemans)
- Bump connect (Julien Biezemans)
- Fix Travis build (Julien Biezemans)
- Bump browserify (Julien Biezemans)
- Bump nopt (Julien Biezemans)
- Bump underscore (Julien Biezemans)
- Bump underscore.string (Julien Biezemans)
- Bump rimraf (Julien Biezemans)
- Bump mkdirp (Julien Biezemans)
- Bump Aruba (Julien Biezemans)
- Suggest step definition snippets for undefined steps (#33, Julien Biezemans)
- Add contributors to NPM package manifest (Julien Biezemans)
- Clean up JS step definitions (Julien Biezemans)
- Bump cucumber-features and reflect step changes (Julien Biezemans)
- Set up continuous integration on Travis CI (Julien Biezemans)
- Add Travis's build status icon to README (Julien Biezemans)
- Allow custom World constructors (Julien Biezemans)
- Add support for data tables (with conversion to hashes) (#12, Julien Biezemans)
- Demonstrate World object usages in web example (Julien Biezemans)
- Setup application to run on Travis CI (Julien Biezemans)
- Add CoffeeScript support for step definition files (Paul Jensen)
- Add "World" (#26, Julien Biezemans)
- Add link to the Github repository on web example (Julien Biezemans)
- Allow specifying the port the web example server should listen on (Julien Biezemans)
- Update web example to use cucumber-html formatter (Julien Biezemans)
- Fix load paths in spec helper (Julien Biezemans)
- Prevent 'crypto' module from being included by browserify in web example (Julien Biezemans)
- Fix HTML indentation (Julien Biezemans)
- Prevent CLI support code loader from calling module main exports which are not functions (Julien Biezemans)
- Remove use of username for submodule (Kushal Pisavadia)
- Bump jasmine-node
- Update README (Julien Biezemans)
- Bump Gherkin twice (Julien Biezemans)
- Bump cucumber-features twice (Julien Biezemans)
- Add missing getters on several AST feature elements (mostly getLine()) (Julien Biezemans)
- Ignore example/ on NPM (Julien Biezemans)
- Add Procfile (used by Heroku when deploying to cucumber.heroku.com) (Julien Biezemans)
- Bump Aruba (Julien Biezemans)
- Add guard-jasmine-node (Julien Biezemans)
- Improve Guardfile regular expressions (Julien Biezemans)
- Bump cucumber-html and remove DOM templates from web example HTML file (Julien Biezemans)
- Fix PathExpander internal name (Julien Biezemans)
- Remove unneeded requires from FeaturePathExpander (Julien Biezemans)
- Bump browserify (Julien Biezemans)
- Remove "glob" from dependencies (Julien Biezemans)
- Refactor SupportCodePathExpander spec (Julien Biezemans)
- Add feature for CoffeeScript support (#29, Julien Biezemans)
- Add support for background (#9, Julien Biezemans)
- Bump cucumber-features (twice) (Julien Biezemans)
- Bump gherkin and reflect changes in its API (add DocString content type) (Julien Biezemans)
- Stop polluting the global namespace with Given(), When() and Then() (#2, Julien Biezemans)
- Step definitions can be created with the support code helper passed as 'this': this.Given(), this.When(), this.Then() and this.defineStep() (#2, Julien Biezemans)
- Fix typo "occured" -> "occurred" (Fernando Acorreia)
- Improve variable names in CLI support code loader (Julien Biezemans)
- Allow several features to run at once (#14, Julien Biezemans)
- Add support for --require (Julien Biezemans)
- Improve features and support code API (Julien Biezemans)
- Add "Cli" and "Volatile" configurations (Julien Biezemans)
- Internal refactoring and cleanup (Julien Biezemans)
- Cucumber.js can now fully test itself (Julien Biezemans)
- Remove run_all_features script in favor of bin/cucumber.js (Julien Biezemans)
- Add failure reporting to the progress formatter (#20, Julien Biezemans)
- Publish Cucumber.js to NPM as
cucumber
(Julien Biezemans)
- Throw a clearer exception on missing feature argument (CLI) (Julien Biezemans)
- Unify and clean up js-specific features and step definitions (#21, Julien Biezemans)
- Add cucumber.js executable (Julien Biezemans)
- Handle step failures (#6, Julien Biezemans)
- Add the progress formatter (#16, Julien Biezemans)
- Add support for pending steps (#18, Julien Biezemans)
- Add support for undefined steps (#19, Julien Biezemans)
- Update web example to use the new progress formatter (Julien Biezemans)
- Fix asynchronous step definition callbacks (#1, Julien Biezemans)
- Fix stepResult.isSuccessful call in ProgressFormatter (Julien Biezemans)
- Load Gherkin properly in browsers (Julien Biezemans)
- Remove calls to console.log in web example (Julien Biezemans)
- Pass against core.feature in its new form, both with the Cucumber-ruby/Aruba pair and cucumber-js itself (Julien Biezemans)
- Refactor cucumber-features JS mappings (Julien Biezemans)
- Refactor js-specific features (Julien Biezemans)
- Rename PyString to DocString (#15, Julien Biezemans)
- Update Gherkin to 2.4.0 (Julien Biezemans)
- Modularize the project and use browserify.js to serve a single JS file to browsers. (#3, Julien Biezemans)
- Rename Cucumber.Types to Cucumber.Type (Julien Biezemans)
- Use progress formatter in cucumber-features (#17, Julien Biezemans)
- Emerge Cucumber.js with bare support for features, scenarios and steps. It does not handle several Gherkin elements nor failures yet. (Julien Biezemans)