This file documents all notable changes for v2.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- [JUnit] Add readme to cucumber-junit (#1306 M.P. Korstanje)
- [Java] Add detail to DataTable hint in JavaSnippet (#1298 Marit van Dijk)
- [Java] Remove 'throws Exception' from JavaSnippet (#1308 Marit van Dijk)
- [Android] Make test names passed to the instrumentation unique (#1094 Christian Gnüchtel)
- [Core] Json Formatter: include the content type of doc strings (#1309 Björn Rasmusson)
2.3.1 (2017-12-14)
- [Core] Remove scenario scoped step definitions from step definition cache (#1301 M.P. Korstanje)
- [Core] Cache matched steps definitions (#1289 Łukasz Suski)
- [JUnit] Document supported JUnit annotations (#1272 Marit van Dijk)
- [Core] Upgraded tag-expressions to 1.1.1 (M.P. Korstanje)
- Allows empty tag expressions (cucumber/#296)
- Don't allow reverse polish notation in tag expressions (cucumber/#304)
- [JUnit]
Cucumber.createRuntime
has been deprecated (#1287 M.P. Korstanje)
- [Core] Add missing feature tags in the JSON output (#1288 Pierre Gentile)
- [Core] Fix detection of XStreamsConverters annotation (#1283, #1284 Dmitrii Demin)
- [TestNG] Fix null pointer exception when invalid options are used (#1282 M.P. Korstanje)
- [JUnit] Print JUnit Options when unknown option is provided (#1273, Marit Van Dijk)
- [Spring] Support BootstrapWith annotation (#1245, #1242, #1061 M.P. Korstanje)
- [Core] Allow String parameter in plugin constructors (Aslak Hellesøy)
- [Core] Prefer single-arg constructors over empty constructors in plugins (#1104, c6e471c2 Aslak Hellesøy)
- [Core] Optimize MethodScanner (#1238 Łukasz Suski)
- [Core] Running empty Pickles yields the result undefined (#1274 Björn Rasmusson)
- [Core] Use gherkin 5.0.0 (#1252 M.P. Korstanje)
- [Spring] Deprecate Spring context configuration by more than one class (#1259 Björn Rasmusson)
- [Scala, Groovy, Clojure, Jython, JRuby, Rhino, Gosu] Moved to own repositories (M.P. Korstanje)
- [Java8] Fix Java8StepDefinition.isDefinedA (#1254, #1255 tts-ll, M.P. Korstanje)
- [Core] Fix race condition in Timeout (#1244 M.P. Korstanje)
- [Core] Correct the name of the Json Formatter embeddings node (#1236 Haroon Sheikh)
- [Spring] Exception is thrown complaining about multiple matching beans (#1225, #1226, M.P. Korstanje)
- [Core] cucumber.api.TableConverter interface (#1223 M.P. Korstanje)
- [Core] Deprecated constructors and run method of TestCase and Test Step (#1223 M.P. Korstanje)
- [Core] Skip test step execution if --dry-run is specified (#1220 ,#1219 Adrian Baker)
- [Java8] NullPointerException at Java8StepDefinition.isDefinedAt (#1222, #1217 M.P. Korstanje)
- [Core] Scenario.isFailed always return false (#1216, #1215 Olivier Lemasle)
- [Docs] Javadoc stylesheet issue (#1212, #796 Marit Van Dijk)
- [Java] Reduce Throwable to Exception in JavaSnippet (#1207, #1208 M.P. Korstanje)
- [Core] Update the cucumber-html dependency to version 0.2.6 (Björn Rasmusson)
- [Core] Fix PrettyFormatter exception on nested arguments (#1200 Marit van Dijk, M.P. Korstanje)
- [Core] Added tests for diffing with empty table and list (#1194 Marit van Dijk, M.P. Korstanje)
- [JUnit] Invoke (Before|After)Class and TestRules around Cucumber execution (#1190 M.P. Korstanje)
- [Core] Use whole path for uri:s for file system feature files (#1189, #854 Björn Rasmusson)
- [Java, Java8, Kotlin Java8] Support method references (#1178, #1140 M.P. Korstanje)
- Java8 method references can be used in lambda step definitions
- It is no longer possible to use lambda step definitions without also using
cucumber-java8
- Lambda step definitions can be used in Kotlin. Function references are not yet understood
- [Core] Make the parsing of the rerun file more robust (#1187 M.P. Korstanje)
- [Android] Update the version of the cucumber-jvm-deps dependency - to a version without Java8 bytecode (#1170, #893 Björn Rasmusson)
- [Needle] Handle circular dependencies (#853 Lars Bilger)
- [Core] Use "uri" instead of "path" to reference feature files in external APIs (#1179 Björn Rasmusson)
- [Core] Separate rerun paths by a new line character (#1177, #1187 M.P. Korstanje)
- [TestNG] Run a separate TestNG test per scenario (deprecate one TestNG test per feature, and one TestNG for the whole suite) (#1174, #1113 Luciano van der Veekens, Björn Rasmusson)
- [Core] Close OutputStream for embedded images in HTML formatter (#1175, #1108 M.P. Korstanje)
- [Scala] Compile cucumber-scala_2.12 against Java 8 (#1171, #1087 M.P. Korstanje, Paolo Ambrosio). This includes:
- Update Scala Versions
- 2.12.0-M1 to 2.12.2
- 2.11.8 to 2.11.11
- Use Manifest instead of Java reflection to provide type information
- Update Scala Versions
- [Core] Avoid closing System.out or System.err from formatters (#1173 Björn Rasmusson)
- [Core] Decouple UndefinedStepsTracker from Glue (#1019 #1172 Illapikov, M.P. Korstanje)
- [Core] Add TestRunStarted event, let Stats handle the exit code (#1162 Björn Rasmusson)
- [Core, JUnit, Android] Add the ambiguous result type (#1168 Björn Rasmusson)
- [Core] Add the SnippetsSuggestedEvent (#1163 Björn Rasmusson)
- [Java] Prevent MethodScanner from checking Object.class methods (#940 Łukasz Suski)
- [Weld] Use Weld SE 2.4.4.Final (#1166 Frank Seidinger)
- [Core] Provide a unique id of the current scenario to the hooks. (#1160 Björn Rasmusson)
- [Gosu] Fix and re-enable Gosu for 2.0.0 (#1155, #1086, #874 Kyle Moore, M.P. Korstanje)
- [Core] Fix issue where ComplexTypeWriter would create unbalanced tables. (#1042 Roy Jacobs, M.P. Korstanje)
- [Guice] Use the ContextClassLoader when loading InjectorSource. (#1036, #1037 Kyle Moore)
- [Core] Allow global registration of custom XStream converters. (#1010, #1009 Chris Rankin)
- [Spring] Support multithreaded execution of scenarios (#1106, #1107, #1148, #1153 Ismail Bhana, M.P. Korstanje)
- [Core] Show explicit error message when field name missed in table header (#1014 Mykola Gurov)
- [Examples] Properly quit selenium in webbit examples (#1146 Alberto Scotto)
- [JUnit] Use AssumptionFailed to mark scenarios/steps as skipped (#1142 Björn Rasmusson)
- [Core] Map AssumptionViolatedException to Skipped status (#1145, #1007 Björn Rasmusson)
- [Java] SnippetGenerator recognises parameters from Scenario Outline (#1078 Andrey Vokin)
- [Java8] Allow lambda steps to throw checked Exceptions (#1001, #1110 Christian Hujer)
- [JUnit] Add
--[no-]step-notifications
option to JunitOptions (no step notifications is the default) (#1135, #1159, #263, #935, #577 M.P. Korstanje, Björn Rasmusson) - [JUnit] Use deterministic unique ids in Descriptions (#1134, #1120 mpkorstanje)
- [All] Support Tag Expressions (part of #1035 Björn Rasmusson)
- [All] Upgrade to Gherkin 4.1 (#1035, #1131, #1133 Björn Rasmusson, M.P. Korstanje). This also fixes:
- [All] Change the maven groupId to io.cucumber (part of #1035 Björn Rasmusson)