Git master (not released)
- [Build] Deploy maven SNAPSHOT versions from Travis (#517, #528 Tom Dunstan)
- [Core] JUnitFormatter to mark skipped tests as failures in strict mode (#543 brasmusson)
- [Core] Always cancel tomeout at the end of a stepdef, even when it fails. (#540 irb1s)
- [Groovy] Updated examples to be more explanatory and groovier syntax (#537 Quantoid)
- [PicoContainer,Groovy,JRuby,Jython] Not shading maven artifacts any longer. Gem has a shaded jar though. (#522 #518 Dmytro Chyzhykov, Aslak Hellesøy)
- [Core] The
json-pretty
formatter is gone, and thejson
formatter is pretty! - [Spring] New awesome Spring port of The Cucumber Book's chapter 14. (#508, #489 Dmytro Chyzhykov, Pedro Antonio Souza Viegas)
- [Core] Added
Scenario.getSourceTagNames()
, which is needed to make Capybara work with Cucumber-JRuby (#504 Aslak Hellesøy) - [JRuby] Tagged hooks for JRuby (#467 Aslak Hellesøy)
- [Spring] Implementation based on SpringJunit4ClassRunner. (#448, #489 Pedro Antonio Souza Viegas)
- [Core] Bugfix: Generated regex for ? character is incorrect. (#494 Aslak Hellesøy)
- [Core] Improve readability with unanchored regular expressions (#485, #466 Anton)
- [Core] Throw exception when unsupported command line options are used. (#482, #463 Klaus Bayrhammer)
- [Scala] Release cucumber-scala for the two most recent minro releases (currently 2.9.2 and 2.9.0) (#432, #462 Chris Turner)
1.1.3 (2013-03-10)
- [Core] Added accessors to
TableDiffException
. (#384 Aslak Hellesøy) - [Core] Fixed use of formatter to list all step results in JSON output (#426 agattiker)
- [Scala] Add support for DataTable and locale-aware type transformations. (#443, #455 Matthew Lucas)
- [Groovy] Groovy should throw exception if more then one World registred (#464, #458 Luxor)
- [Core] Diffing tables doesn't work when delta span multiple lines (#465 Gilles Philippart)
- [JRuby]
GEM_PATH
andRUBY_VERSION
can be set in env var, system property orcucumber-jruby.properties
resource bundle. (Aslak Hellesøy) - [JRuby] Wrong CompatVersion passed to JRuby when 1.9 is given (#415 David Kowis)
- [Core] Custom Formatter/Reporter's
before
andafter
hook weren't run. (Aslak Hellesøy) - [Clojure] Clojure backend should define HookDefinition.getLocation(boolean detail) (#461, #471 Nils Wloka)
1.1.2 (2013-01-30)
- [Core] Restore ability to diff with another DataTable (#413 Gilles Philippart)
- [Core] Executing a test with the --dry-run option does not skip the @Before or @After annotations (#424, #444 William Powell)
- [Clojure] Updated lein-cucumber version to 1.0.1 (#414 Nils Wloka)
- [JUnit] Upgrade to 4.11 (#322 #445 Petter Måhlén, Aslak Hellesøy)
- [Spring] Upgrade to 3.2.1.RELEASE (Aslak Hellesøy)
- [Core] Strip command line arguments in case people accidentally invoke
cucumber.api.cli.Main
with arguments that have spaces left and right. (Aslak Hellesøy) - [Core] Implemented
DataTable.equals()
andDataTable.hashCode()
. (Aslak Hellesøy) - [Core] Support
DataTable.toTable(List<String[]>) and
DataTable.toTable(List<Map<String,String>>)` (#433, #434 Nicholas Albion, Aslak Hellesøy) - [Core] Formatters and
--dotcucumber
can now write to a file or an URL (via HTTP PUT). This allows easier distribution of reports. (Aslak Hellesøy) - [JUnit] Added
@Cucumber.Options.dotcucumber
, allowing metadata to be written from JUnit. Useful for code completion. (#418 Aslak Hellesøy) - [Core] Embedded data fails to display in HTML reports due to invalid string passed from HTMLFormatter (#412 Aslak Hellesøy)
- [Scala] Upgrade to scala 2.10.0. (Aslak Hellesøy)
- [Scala] Passing Scenario reference in Before and After hooks (#431 Anshul Bajpai)
- [Core] RunCukesTest prevents the execution of other tests (#304, #430 Mishail)
- [Core] Deprecated
cucumber.runtime.PendingException
in favour ofcucumber.api.PendingException
. (Aslak Hellesøy) - [Core] New
@cucumber.api.Pending
annotation for customException
classes that will cause a scenario to bepending
instead offailed
. (#427 agattiker) - [Core]
--name 'name with spaces in single quotes'
is working (#379, #429 William Powell) - [Examples/Spring] Spring Data JPA based repositories. (#422 Dmytro Chyzhykov)
- [Examples/Gradle] Added a Gradle example. (#446 Ivan Yatskevich, David Kowis)
1.1.1 (2012-10-25)
This release bumps the minor version number from 1.0 to 1.1. This is because there are backwards-incompatible changes.
There shouldn't be anything else that breaks than package renames and a few class renames. The reason for these breaking
changes is to make it more obvious what parts of the API are public and what parts are not. From now on, anything in the
cucumber.api
package and below is public. If you're importing any cucumber.*
packages that don't start with
cucumber.api
you're using an internal API, and that might still change in future releases. The goal is to have anything
in cucumber.api
stable from now on, with proper deprecation warnings in case some APIs still need to change.
- [Scala] Up the cucumber-scala Scala dependencies to 2.10.0-RC1 (#409 Chris Turner)
- [JRuby] Upgraded to JRuby 1.7.0 (Aslak Hellesøy)
- [JRuby] I18n stepdefs.
require 'cucumber/api/jruby/en'
or other language. (#177 Aslak Hellesøy) - [JRuby] Calling steps from stepefs now uses the
step
method (Aslak Hellesøy) - [JRuby] World(module) works (Aslak Hellesøy)
- [JRuby] The DSL no longer leaks into global scope (Aslak Hellesøy)
- [Spring] The
@txn
hooks in thecucumber.runtime.java.spring.hooks
package have order 100. (398 Aslak Hellesøy) - [Java] The
@Order
annotation is replaced with anorder
property on@Before
and@After
(Aslak Hellesøy) - [Core] Make sure all report files are written with UTF-8 encoding (402 MIC, Aslak Hellesøy)
- [Core] HTMLFormatter improvements (375, 404, 283 Aslak Hellesøy)
- [All] Package reorganisation. Only classes under
cucumber.api
are part of the public (stable) API. Classes in other classes are not part of the API and can change. (Aslak Hellesøy) - [Core] Improved
Transformer
API (Aslak Hellesøy) - [Java] Renamed
@DateFormat
to@Format
(Aslak Hellesøy) - [Core] Fixed a bug where
-Dcucumber.options="--format pretty"
would fail with the JUnit runner. (Aslak Hellesøy). - [Core] Scenario Transform header being treated like an object (no bugfix, but added explanation) (#396 Aslak Hellesøy)
- [Core] TableDiff with list of pojos: camelcase convert of column names to field names (#385 mbusik)
- [Core] Added video/ogg mimetype to embedd videos in the HTMLReport (#390 Klaus Bayrhammer)
- [Groovy] Generated Groovy step definitions need backslashes to be escaped (#391, #400, Martin Hauner)
- [Java] The java module (and all other modules) finally compile on JDK 7 and OS X. (David Kowis, Sébastien Le Callonnec, Aslak Hellesøy)
- [Core] The
cucumber.options
System property will no longer completely override all arguments set in@Cucumber.Options
or on the command line. Instead, it will keep those and only override those that are specified incucumber.options
. Special cases are--tags
,--name
andpath:line
, which will override previous tags/names/lines. To override a boolean option (options that don't take arguments like--monochrome
), use the--no-
counterpart (--no-monochrome
). (#388 Sébastien Le Callonnec, Aslak Hellesøy)
1.0.14 (2012-08-20)
(The 1.0.13 release failed half way through)
- [Core] gherkin.jar, gherkin-jvm-deps.jar and cucumber-jvm-deps.jar are embedded inside cucumber-core.jar (to simplify installation) (Aslak Hellesøy)
1.0.12 (2012-08-19)
- [Core] No img data in embeddings using both json and html reports (#339 Aslak Hellesøy)
- [Core] JUnit assume failures (
AssumptionViolatedException
) behaves in the same way as pending (cucumber.runtime.PendingException
) (#359 Aslak Hellesøy, Kim Saabye Pedersen) - [Core] Extend url protocols. This makes it possible to load features and glue from within a container such as Arquilian. (#360, #361 Logan McGrath)
- [Jython] Jython Before/After Annotations (#362 Stephen Abrams)
- [Java] Support for delimited lists in step parameters (#364, #371 Marquis Wang)
- [Groovy] Load
env.groovy
before other glue code files. (#374 Tomas Bezdek) - [Clojure] Add utilities for reading tables (#376 rplevy-draker)
1.0.11 (2012-07-06)
- [Core] Added a new
@Transform
annotation and an abstractTransformer
class giving full control over argument transforms. - [OpenEJB] Remove log4j need for openejb module (#355 rmannibucau)
- [JUnit] JUnit report doesn't correctly report errors (#315, #356 Kevin Cunningham)
1.0.10 (2012-06-20)
- [Core] Automatically convert data tables to lists of enums just as is done with classes #346
- [Core]
DataTable.create()
andTableConverter.toTable()
will omit columns for object fields that are null, unless columns are explicitly listed. See #320 (Aslak Hellesøy) - [Core] Table conversion to
List<Map>
converts to a List of Map of String to String. (Aslak Hellesøy) - [Core] Table conversion to
List<Map<KeyType,ValueType>>
works for enums, dates, strings and primitives. (Aslak Hellesøy) - [Core] Formatters should report feature paths as relative paths. (#337, #342 mattharr)
- [Java/Groovy] Step definitions and hooks can now specify a timeout (milliseconds) after which a
TimeoutException
is thrown if the stepdef/hook has not completed. Please note that for Groovy,sleep(int)
is not interruptible, so in order for sleeps to work your code must useThread.sleep(int)
(#343 Aslak Hellesøy) - [Java] More explanatary exception if a hook is declared with bad parameter types. (Aslak Hellesøy)
- [Core/JUnit] JUnit report has time reported as seconds instead of millis. (#347 Aslak Hellesøy)
- [Core] List legal enum values if conversion fails (#344 Aslak Hellesøy)
- [Weld] Added workaround for WELD-1119 when running on single core machines. (Aslak Hellesøy)
1.0.9 (2012-06-08)
- [Core] Exceptions thrown from a step definition are no longer wrapped in CucumberException. (Aslak Hellesøy)
- [Core] Fixed regression: PendingException was causing steps to fail instead of pending. (#328 Aslak Hellesøy)
- [Java] Missing String.format parameters in DefaultJavaObjectFactory (#336 paulkrause88, Aslak Hellesøy)
- [Core] Exceptions being swallowed if reported in a Hook (#133 David Kowis, Aslak Hellesøy)
- [Core] Added
DataTable.asMaps()
and made all returned lists immutable. (Aslak Hellesøy). - [Java] The java-helloworld example has a simple example illustrating data tables and doc strings. (Aslak Hellesøy).
- [Core] Run scenarios/features by name (#233, #323 Klaus Bayrhammer)
- [Jython] Added missing
self
argument in Jython snippets. (#324 Aslak Hellesøy) - [Scala] Fixed regression from v1.0.6 in Scala module - glue code wasn't loaded at all. (#321 Aslak Hellesøy)
1.0.8 (2012-05-17)
- [Core] Ability to create
DataTable
objects from a List of objects while specifying what header columns (fields) to use (Aslak Hellesøy) - [Core]
table.diff(listOfPojos)
no longer spuriously fails because of pseudo-random column/field ordering (Aslak Hellesøy) - [Core] Tables with empty cells make the column disappear (#320 Aslak Hellesøy, Gilles Philippart)
- [Java] Add 'throws Throwable' to generated Java stepdef snippets (#318, #319 Petter Måhlén)
- [Core] Remove forced UTC timezone. (#317 Gilles Philippart)
- [Core] Options (Command line or
@Cucumber.Options
) can be overriden with thecucumber.options
system property. (Aslak Hellesøy)
1.0.7 (2012-05-10)
- [Java] cucumber-java lazily creates instances, just like the other DI containers. (Aslak Hellesøy)
- [Core] Throw an exception if a glue or feature path doesn't exist (i.e. neither file nor directory) (Aslak Hellesøy)
1.0.6 (2012-05-03)
- [JUnit] Scenarios with skipped, pending or undefined steps show up as yellow in IDEA and Eclipse (They used to be green while the steps were yellow). (Aslak Hellesøy)
- [Core] Loading features and glue code from the
CLASSPATH
can be done withclasspath:my/path
(#312 Aslak Hellesøy) - [Clojure] Clojure example can't find cuke_steps.clj (#291, #309 Nils Wloka)
1.0.4 (2012-04-23)
- [Core] Ability to specify line numbers:
@Cucumber.Options(features = "my/nice.feature:2:10")
(#234 Aslak Hellesøy) - [WebDriver] Improved example that shows how to reuse a driver for the entire JVM. (Aslak Hellesøy)
- [Core] Allow custom @XStreamConverter to be used on regular arguments - not just table arguments. (Aslak Hellesøy)
- [Groovy] fixed & simplified groovy step snippets (#303 Martin Hauner)
- [Java] Detect subclassing in glue code and report to the user that it's illegal. (#301 Aslak Hellesøy)
- [Core] Friendlier error message when XStream fails to assign null to primitive fields (#296 Aslak Hellesøy)
1.0.3 (2012-04-19)
- [Core] Friendlier error message when XStream fails conversion (#296 Aslak Hellesøy)
- [Core] Empty strings from matched steps and table cells are converted to
null
. This means boxed types must be used if you intend to have empty strings. (Aslak Hellesøy) - [Core] Implement --strict (#196, #284 Klaus Bayrhammer)
- [Clojure] Cucumber-clojure adding after hook to before (#294 Daniel E. Renfer)
- [Java] Show code source for Java step definitions in case of duplicates or ambiguous stepdefs. (Aslak Hellesøy).
- [Groovy] Arity mismatch can be avoided by explicitly declaring an empty list of closure parameters. (#297 Aslak Hellesøy)
- [Core] Added DataTable.toTable(List<?> other) for creating a new table. Handy for printing a table when diffing isn't helpful. (Aslak Hellesøy)
1.0.2 (2012-04-03)
- [Java] Snippets using a table have a hint about how to use List. (Aslak Hellesøy)
- [Java] Don't convert paths to package names - instead throw an exception. This helps people avoid mistakes. (Aslak Hellesøy)
- [Scala] Fixed generated Scala snippets (#282 pawel-s)
- [JUnit] Automatically turn off ANSI colours when launched from IDEA. (Aslak Hellesøy)
1.0.1 (2012-03-29)
- [Clojure] Fix quoting of generated Clojure snippets (#277 Michael van Acken)
- [Guice] Guice in multi module/class loader setup (#278 Matt Nathan)
- [JUnit] Background steps show up correctly in IntelliJ (#276 Aslak Hellesøy)
1.0.0 (2012-03-27)
- [Docs] Added Cuke4Duke migration notes to README (#239 coldbloodedtx)
- [Core] Added --monochrome flag, allowing monochrome output for certain formatters (#221 Aslak Hellesøy)
- [Core] Added a usage formatter (#207, #214 Klaus Bayrhammer)
- [Core] JavaScript-Error in HTML-Report when using ScenarioResult.write (#254 Aslak Hellesøy)
- [Java] Add support for enums in stepdefs (#217, #240 Gilles Philippart)
- [Core] Help text for CLI. (#142 Aslak Hellesøy)
- [JUnit] Eclipse JUnit reports inaccurate run count (#263, #274 dgradl)
1.0.0.RC24 (2012-03-22)
- [Core] Understandable error message if a formatter needs output location. (#148, #232, #269 Aslak Hellesøy)
- [JUnit] Running with JUnit uses a null formatter by default (instead of a progress formatter). (Aslak Hellesøy)
- [Clojure] Fix release artifacts so cucumber-clojure can be released. (#270 Aslak Hellesøy)
- [Java] The @Pending annotation no longer exists. Throw a PendingException instead (#271 Aslak Hellesøy)
1.0.0.RC23 (2012-03-20)
- [JUnit] CucumberException when running Cucumber with Jacoco code coverage (#258 Jan Stamer, Aslak Hellesøy)
- [Scala] Scala Javadoc problems with build (#231 Aslak Hellesøy)
1.0.0.RC22 (2012-03-20)
- [Java] Snippets for DataTable include a hint about using List, so people discover this neat technique (Aslak Hellesøy)
- [Core] Support DocString and DataTable in generated snippets (#227 Aslak Hellesøy)
- [Core] Fix broken --tags option (and get rid of JCommander for CLI parsing). (#266 Aslak Hellesøy)
- [Clojure] Make Clojure DSL syntax cleaner (#244 #267 rplevy-draker)
- [Clojure] Native Clojure backend (#138 #265 Kevin Downey, Nils Wloka)
- [JUnit] Added
format
attribute to@Cucumber.Options
(Aslak Hellesøy)
1.0.0.RC21 (2012-03-18)
- [Core] Ignore duplicate features instead of throwing exception. (#259 Aslak Hellesøy)
- [Core] Wrong message when runner on a non existing tag on feature (#245 Aslak Hellesøy, Jérémy Goupil)
- [Groovy, JRuby, Rhino] Make sure UTF-8 encoding is used everywhere (#251 Aslak Hellesøy)
- [Core, Cloure] Fixed StepDefinitionMatch to work with StepDefinitions that return null for getParameterTypes (#250, #255 Nils Wloka)
- [Java] Open up the
JavaBackend
API to ease integration from other tools (#257 Aslak Hellesøy). - [Java] Inheritance in glue classes (stepdefs and hooks) is no longer supported - it causes too many problems. (Aslak Hellesøy).
- [JUnit]
@Cucumber.Options
annotation replaces@Feature
annotation (#160 Aslak Hellesøy) - [Spring] Slow Spring context performance (#241, #242 Vladimir Klyushnikov)
- [Core] Support for java.util.Calendar arguments in stepdefs. (Aslak Hellesøy)
1.0.0.RC20 (2012-02-29)
- [JUnit] Improved JUnit runner. (#107, #211, #216 Giso Deutschmann)
- [Core] Stacktrace filtering filters away too much. (#228 Aslak Hellesøy)
- [Groovy] Fix native Groovy cucumber CLI (#212 Martin Hauner)
- [Core] Indeterministic feature ordering on Unix (#224 hutchy2570)
- [JUnit] New JUnitFormatter (--format junit) that outputs Ant-style JUnit XML. (#226, #171 Vladimir Miguro)
1.0.0.RC16 (2012-02-20)
- [Core] Embed text and images in reports. (#205 Aslak Hellesøy)
- [Core] Detect duplicate step definitions. (Aslak Hellesøy)
- [Java] Auto-generated step definitions should escape dollar signs / other regex chars (#204, #215 Ian Dees)
- [Core] Scenario Outlines work with tagged hooks. (#209, #210 Aslak Hellesøy)
- [Spring] Allowed customization of Spring step definitions context (#203 Vladimir Klyushnikov)
- [Core] Ambiguous step definitions don't cause Cucumber to blow up, they just fail the step. (Aslak Hellesøy)
- [Java] Fixed NullPointerException in ClasspathMethodScanner (#201 Vladimir Klyushnikov)
- [Groovy] Compiled Groovy stepdef scripts are found as well as source ones (Aslak Hellesøy)
- [Jython] I18n translations for most languages. Languages that can't be transformed to ASCII are excluded. (#176, #197 Stephen Abrams)
1.0.0.RC15 (2012-02-07)
- [Java] You must use
cucumber.runtime.xstream
instead ofcom.thoughtworks.xstream
for custom converters. - [Core] XStream and Diffutils are now packaged inside the cucumber-core jar under new package names. (#179 Aslak Hellesøy)
- [Core] Fail if no features are found (#163 Aslak Hellesøy)
- [Core] Fail if duplicate features are detected (#165 Aslak Hellesøy)
1.0.0.RC14 (2012-02-06)
- [Core] HTML formatter produces invalid page if no features (#191 Paolo Ambrosio)
- [Core] i18n java snippets for undefined steps are always generated with @Given annotation (#184 Vladimir Klyushnikov)
- [JUnit] Enhanced JUnit Exception Reporting (#185 Klaus Bayrhammer)
- [Guice] Constructor dependency resolution causes errors in GuiceFactory (#189 Matt Nathan)
1.0.0.RC13 (2012-01-26)
- [Clojure] Fixed hooks (#175 Ronaldo M. Ferraz)
- [Core] Properly flush and close formatters (#173 Aslak Hellesøy, David Kowis)
- [Core] Use Gherkin's internal Gson (Aslak Hellesøy)
- [JUnit] Better reporting of Before and After blocks (Aslak Hellesøy)
- [Core] Bugfix: Scenario Outlines failing (#170 David Kowis, Aslak Hellesøy)
- [OpenEJB] It's back (was excluded from previous releases because it depended on unreleased libs). (Aslak Hellesøy)
1.0.0.RC12 (2012-01-23)
- [JUnit] Tagged hooks are executed properly (Aslak Hellesøy)
- [JRuby] Better support for World blocks (#166 David Kowis)
- [Java] GluePath can be a package name (#164 Aslak Hellesøy)
- [Build] Fixed subtle path issues on Windows
- [Build] Fixed Build Failure: Cucumber-JVM: Scala (FAILURE) (#167 Aslak Hellesøy)
1.0.0.RC11 (2012-01-21)
- [Build] The build is Maven-based again. It turned out to be the best choice.
- [Scala] The Scala module is back to life. (#154 Jon-Anders Teigen)
- [Build] The build should work on Windows again. (#154 Aslak Hellesøy)
- [Build] Maven pom.xml files are back (generated from ivy.xml). Ant+Ivy still needed for bootstrapping.
- [Clojure] Snippets use single quote instead of double quote for comments.
- [All] Stepdefs in jars were not loaded correctly on Windows. (#139)
- [Build] Fixed repeated Ant builds. (#141)
- [Build] Push to local maven repo. (#143)
- [Build] Fixed transitive dependencies in POM files. (#140)
- [Build] Use a dot (not a hyphen) in RC version names. Required for JRuby gem.
- [Build] Started tagging repo after release.
- First proper release