- [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)
(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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [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