2 All notable changes to this project will be documented in this file.
4 The format is based on [Keep a Changelog](http://keepachangelog.com/)
5 and this project adheres to [Semantic Versioning](http://semver.org/).
9 ## [3.4.1] - 2017-09-18
11 * PHP 5.3 style cleanup.
13 ## [3.4.0] - 2017-09-10
15 * [#1071](https://github.com/Behat/Behat/pull/1071): Services auto-wiring
16 * [#1054](https://github.com/Behat/Behat/pull/1054): [PSR-11](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-11-container.md)
17 support for helper containers.
18 * Support for modern PHPUnit.
21 * [#1056](https://github.com/Behat/Behat/pull/1056): Make Gherkin aware of the
22 base path so it can filter correctly
25 * [#1069](https://github.com/Behat/Behat/pull/1069): Rework argument validators
28 * [#1054](https://github.com/Behat/Behat/pull/1054): Deprecated usage
29 of `Interop\Container`. Versions prior to `1.2` are not supported, but `1.2`
30 is a non-breaking change. If you depend heavily on `Interop`, upgrade to
31 `1.2`, which is still supported by helper containers. Aim to migrate to
32 `Psr` before Behat 4.0 shows up on horizon
33 * PHP versions prior to 5.6 and HHVM were dropped from CI build matrix. It
34 doesn't mean that we'll start using features of 5.6 yet, it just means we
35 don't get out of our way to support 5.3 and 5.4 anymore. In 4.0 support will
36 be completely dropped.
38 ## [3.3.1] - 2017-05-15
40 * [#976](https://github.com/Behat/Behat/pull/1001): Add tests to check that
41 snippets treat words containing apostrophes as a single word
44 * [#993](https://github.com/Behat/Behat/pull/993) Fix mixed arguments
45 organizer not marking typehinted arguments as "defined"
46 * [#992](https://github.com/Behat/Behat/pull/993) Do not misinterpret first
47 argument as a numbered argument if it is in fact typehinted
48 * [#1028](https://github.com/Behat/Behat/pull/1028) Parent / Child class
49 argument ambiguity issue with `MixedArgumentResolver`
51 ## [3.3.0] - 2016-12-25
53 * [#973](https://github.com/Behat/Behat/pull/974): Added helper containers
54 * [#973](https://github.com/Behat/Behat/pull/974): Added
55 `SuiteScopedResolverFactory` extension point
58 * Removed php 5.3 from the Travis build matrix. You can consider it official
59 end of support. 5.4 and 5.5 will follow shortly.
61 ## [3.2.3] - 2016-12-25
63 * [#971](https://github.com/Behat/Behat/pull/971): Added support for suite
66 ## [3.2.2] - 2016-11-05
68 * [#959](https://github.com/Behat/Behat/issues/959): Fix transformations not
69 sorted properly on different php version
71 ## [3.2.1] - 2016-09-25
73 * [#955](https://github.com/Behat/Behat/pull/955): `--snippets-for` is not
74 required now as interactive mode is the new default
75 * [#954](https://github.com/Behat/Behat/pull/954): Stop execution on missing
76 steps when running with `--stop-on-failure` and `--strict` options
78 ## [3.2.0] - 2016-09-20
80 * [#910](https://github.com/Behat/Behat/pull/910): Return type based
82 * [#903](https://github.com/Behat/Behat/pull/903): Multiline step definitions
84 * [#930](https://github.com/Behat/Behat/pull/930): Whole table transformation
85 * [#935](https://github.com/Behat/Behat/pull/935): Narrative filters in suites
86 * [#936](https://github.com/Behat/Behat/pull/936): Debug command
87 * [#931](https://github.com/Behat/Behat/pull/931): Exception handlers
89 * [#870](https://github.com/Behat/Behat/pull/870): Added build-related files
90 and folders to .gitattributes
91 * [#946](https://github.com/Behat/Behat/pull/946): Official full Windows
92 support with CI ([AppVeyor](http://appveyor.com)) on every build
95 * [#922](https://github.com/Behat/Behat/pull/922): Snippets generation revamp
96 * [#920](https://github.com/Behat/Behat/pull/920): More context for
97 pending/failed steps with progress formatter
98 * [#905](https://github.com/Behat/Behat/pull/905): Transformations refactoring
99 * [#864](https://github.com/Behat/Behat/pull/864): Use only one autoloader if
101 * [#920](https://github.com/Behat/Behat/pull/920): Improve "No specifications
103 * Refactor changelog to follow [Keep a Changelog](http://keepachangelog.com/)
104 * Refreshed [CONTRIBUTING.md](CONTRIBUTING.md)
105 * Refreshed Scrutinizer config
108 * [#911](https://github.com/Behat/Behat/pull/911): Fix context isolation for
110 * [#860](https://github.com/Behat/Behat/pull/860): Include basepath in
112 * [#857](https://github.com/Behat/Behat/pull/857): Only cache failed
114 * [#933](https://github.com/Behat/Behat/pull/933): Save failed runs with suite
116 * [#833](https://github.com/Behat/Behat/pull/833): Properly handle interupts
118 * [#904](https://github.com/Behat/Behat/pull/904): Provide clearer exception
119 message when long token names used
120 * [#941](https://github.com/Behat/Behat/pull/941): Transformation should be
121 allowed if printable chars are used
124 * [#922](https://github.com/Behat/Behat/pull/922): `*SnippetAcceptingContext`
126 * [#905](https://github.com/Behat/Behat/pull/905): `RuntimeTransformation`
127 * [#905](https://github.com/Behat/Behat/pull/905): `Transformation::getPattern`
128 * [#920](https://github.com/Behat/Behat/pull/920): `StepStat`
131 * Remove behat.bat (by Konstantin Kudryashov)
133 ## [3.1.0] - 2016-03-28
135 * Add support for Symfony 3 (thanks @benji07)
136 * Add ability to specify execution order of suite (thanks @ciaranmcnulty)
137 * Add translated keywords in definition printer (thanks @WouterJ)
138 * Add 'rowtable' transformations (thanks @PurpleBooth)
139 * Add 'narrative' filters (thanks @WouterJ)
140 * Add JUnit formatter (thanks @WouterJ and @james75)
141 * Add Japanese translation (thanks @SNakano)
142 * Add romanian translation for formatters (thanks @Chriton)
143 * Add table row transformations (thanks @ciaranmcnulty)
144 * Add support for negative numbers without surrounding quotes (thanks
146 * Handle case when non-existent config file is used (thanks @watermanio)
147 * Handle non-default `error_reporting()`
148 * Handle PHP7 errors implementing `Throwable`
149 * Fix autoloading from the global installation (thanks @sroze)
150 * Fix scenario scope naming (thanks @Taluu)
151 * Fix output buffering errors (thanks @tscheepers)
152 * Fix xdebug maximum nesting level errors (thanks @WorkingDevel)
153 * Fix weird edge case in GroupedSpecificationIterator
154 * Allow --verbose flag at CLI (thanks @pfrenssen)
155 * Allow hyphens in suite names (thanks @WouterJ)
156 * Allow suite settings with null values to exist (thanks @docteurklein)
157 * Improve "can not generate snippets" message
158 * Improve performance of Turnip parsing (thanks @Sam-Burns)
159 * Improve the snippet generation by auto-importing needed classes (thanks
162 ## [3.0.15] - 2015-02-22
164 * Fix broken null-transformations (Issue #669)
165 * Improve exception messages (thanks @dantleech)
167 ## [3.0.14] - 2014-09-23
169 * Improve generated context class
171 ## [3.0.13] - 2014-08-28
173 * Add support for typehinted parameters
174 * Allow any whitespace characters at the end of context class
175 * Fix scenario with decimal number following string in Turnip pattern
176 * Fix scenario with empty string in step with Turnip pattern
177 * Fix scenario where step has slashes in Turnip pattern
179 ## [3.0.12] - 2014-07-17
181 * Fix remaining issues with the definition arguments parsing
182 * Introduce `Testwork\Argument` component
184 ## [3.0.11] - 2014-07-09
186 * Fix argument resolution for functions with default values (thanks @alesblaznik)
187 * Fix step colouring of internationalised definitions
188 * Refactor `ContextFactory` and `RepositorySearchEngine` arguments resolution into the new
189 Testwork component - `ArgumentResolver`
191 ## [3.0.10] - 2014-06-29
193 * Fix argument resolution when named arguments used and method has defaults (thanks @WouterJ)
194 * Fix support for decimal numbers in turnip placeholders
196 ## [3.0.9] - 2014-06-20
198 * Fix definition translations reading bug with multi-suite configurations (thanks @WouterJ for reporting)
199 * Fix pretty printer bug with failing background and 2 scenarios (thanks @andytson for reporting)
200 * Fix memory footprint calculation (thanks @dready for reporting)
202 ## [3.0.8] - 2014-06-06
204 * Profile level Gherkin filters are now overridable by CLI filter options
205 * Rerun cache path is now configurable
206 * Fix turnip-based step definitions starting from token
207 * Fix token-based transformations interfering with regex-based ones
208 * Rerun cache dump have been optimised
210 ## [3.0.7] - 2014-05-27
212 * Properly generate keywords in snippets for non-english and `And`, `But` steps (thanks @kibao)
213 * Fix regex check bug with transformations that return objects (thanks @vaidasm)
214 * Return ability to use custom formatters by specifiying their class names
216 ## [3.0.6] - 2014-05-06
218 * Fix a small extension registration shortcut issue introduced in previous release (thanks @FrenkyNet)
220 ## [3.0.5] - 2014-05-06
222 * Fix a suite initialization bug when suite contexts have arguments
223 * Fix wrong handling of an empty `behat.yml`
224 * Explicitly fail when provided context argument is not supported by constructor
225 * Fix extension registration shortcut for 3rd-part plugins
227 ## [3.0.4] - 2014-04-29
229 * Make sure that `Before*Tested` is always executed before `Before*` hooks
230 * Introduce additional `After*Setup` and `Before*Teardown` events
231 * Improved the error reporting for invalid regexes in step definitions (thanks @stof)
233 ## [3.0.3] - 2014-04-27
235 * Support definition transformations without capture groups
236 * Override gherkin filters in custom profiles instead of merging them
237 * Refactored the handling of colors to set them earlier
238 ([#513](https://github.com/Behat/Behat/pull/513) thanks to @stof)
240 ## [3.0.2] - 2014-04-26
242 * Fix warning on empty scenarios
244 ## [3.0.1] - 2014-04-26
246 * Make sure that `AfterStep` hook is running even if step is failed
247 ([504](https://github.com/Behat/Behat/issues/504))
248 * Optimised the way service wrappers are registered (thanks @stof)
250 ## [3.0.0] - 2014-04-20
252 * Brand new highly extendable and clear architecture
253 * Support for multiple suites per profile
254 * Support for multiple contexts per suite
255 * Support for multiple feature paths per suite
256 * Support for filtered suites
257 * Support for unique context constructor parameters
258 * Hooks are first class citizens and thus have their own error and output buffering
259 * Turnip syntax in definitions
260 * Reworked formatters with improved error and output buffering
261 * Rerun does not require precache run
262 * New gherkin role filter
263 * Improved error handling with 3 levels of error reporting (-v, -vv, -vvv)
264 * Dropped subcontexts
265 * Dropped chained steps
266 * Dropped closured definitions
268 ## 3.0.0rc3 - 2014-03-16
270 * Multiline step description support ([082da36b7db2525700287616babe982e485330d1](https://github.com/Behat/Behat/commit/082da36b7db2525700287616babe982e485330d1))
271 * Added ability to choose all 3 verbosity levels and moved stack traces to the 2nd one ([d550f72d6aa49f0f87a6ce0e50721356a5d04c45](https://github.com/Behat/Behat/commit/d550f72d6aa49f0f87a6ce0e50721356a5d04c45))
272 * Renamed Subject to Specification ([#447](https://github.com/Behat/Behat/pull/447))
273 * Refactored ContextSnippetGenerator ([#445](https://github.com/Behat/Behat/pull/445))
274 * Refactored context arguments handling ([#446](https://github.com/Behat/Behat/pull/446))
275 * Refactored testers to use composition over inheritance and added setUp/tearDown phase to them ([#457](https://github.com/Behat/Behat/pull/457))
276 * Refactored output formatters to be chain of event listeners
277 * Refactored hooks to use [scopes](https://github.com/Behat/Behat/tree/3.0/src/Behat/Behat/Hook/Scope) instead of events
278 * Fixed the GroupedSubjectIterator when dealing with an empty iterator ([2c1312780d610f01116ac42fb958c0c09a64c041](https://github.com/Behat/Behat/commit/2c1312780d610f01116ac42fb958c0c09a64c041))
279 * Forced the paths.base to use a real path all the time ([b## [4477d7cf3f9550874c609d4edc5a4f55390672c](https://github.com/Behat/Behat/commit/b4477d7cf3f9550874c609d4edc5a4f55390672c))
281 3.0.0rc2] - 2014-01-10
284 * Fixed progress formatter hooks support
285 * Reintroduced suite hooks (with an additional functionality of name filtering)
286 * Behat tells about steps that it couldn't generate snippets for
287 * Memory consumption optimizations
288 * Fixed contexts inheritance
289 * New formatter translations
291 * Added constructor arguments and class resolving extension points to context creation routine
292 * Simplified and cleaned `Context` package of the Behat
293 * Minor public API changes across the board (simplification)
294 * Optimized subject finding routine and cleaned extension points (`SubjectLocator`)
295 * Both `ExampleTested` and `ScenarioTested` now use same method name - `getScenario()`
296 * Added exception accessors to `StepTestResult`
297 * Renamed `ExerciseTester` to `Exercise`
298 * Added `HookableEvent` to Testwork, which extends `LifecycleEvent`
299 * Made `priority` attribute of a tag optional
300 * Changed all occurrences of `classname` to `class` across public API
301 * Renamed `GherkinSuite` to `GenericSuite` and moved it into the Testwork
302 * Added `initialize` call to extension lifecycle and Extension interface
303 * Renamed some extensions config keys to be more intuitive
305 ## 3.0.0rc1 - 2014-01-01
307 * New layered and highly extendable architecture
308 * Standard output buffering of definitions and hooks
309 * Hooks as first class citizens
310 * New pretty and progress formatters
311 * Huge speed and memory footprint improvements
312 * Moved 40% of non-Behat related codebase into a shared foundation called Testwork
314 ## 3.0.0beta8 - 2013-10-01
316 * Add `*SnippetsFriendlyInterface`(s) that are now required to generate snippets
317 * Add support for turnip-style definitions
318 * Use turnip-style definitions by default from `--init`
319 * Rename `SuitesLoader` to `SuitesRegistry` to clarify purpose
320 * Extract snippet generators into extendable component
321 * Extract context generators into extendable component
323 ## 3.0.0beta7 - 2013-09-29
325 * Multivalue options are now array options (format, output, name and tags)
326 * Added back junit formatter (should support all junit formats from 4 to 7)
327 * Added back html formatter
328 * Small optimizations and refactorings
329 * Proper handling of hook failures
331 ## 3.0.0beta6 - 2013-09-25
333 * Skip step execution and `AfterStep` hook if its `BeforeStep` hook failed
334 * Fix failure-initiated skips of hooks in Scenario and Example testers
335 * Refactor Suite routines
336 * Cleanup Context Pools
337 * Enhance `--definitions` option with suites output and regex search
338 * Add `toString()` methods to `DefinitionInterface` and `TransformationInterface`
339 * Add `SnippetlessContextInterface` to `Snippet` namespace - to prevent snippet generation for
342 ## 3.0.0beta5 - 2013-09-15
344 * Switch to Gherkin 3.0 parser
345 * Complete rewrite of pretty formatter (much better outline handling)
346 * Automatically add `use` for `PendingException` to contexts during `--append-snippets`
347 * Lots of optimizations
349 ## 3.0.0beta4 - 2013-08-17
351 * Cleanup suite configuration sub-system
352 * New ability to turn off specific suites through `behat.yml`
353 * Support for danish language
355 ## 3.0.0beta3 - 2013-08-13
357 * Refactor extension sub-system. Update `ExtensionInterface`
358 * Avoid trying to create folders for non-fs suites
360 ## 3.0.0beta2 - 2013-08-13
362 * Remove support for Symfony 2.0 components
364 ## 3.0.0beta1 - 2013-08-13
366 * New suite-centric architecture
367 * New context pools sub-system with multi-context support
368 * New dynamic event-driven testing core
369 * Refactored console processors sub-system
370 * Refactored formatters management sub-system
371 * 8 new process extension points and 36 generic execution extension points
372 * Gherkin caching is enabled by default
373 * Rerun is enabled by default (use `--rerun` to rerun failed scenarios)
374 * New Gherkin Role filter
375 * Subcontexts removed in favor of context pools
376 * Chained steps extracted into [separate extension](https://github.com/Behat/ChainedStepsExtension)
377 * Closured step definitions removed
379 ## 2.5.0 - 2013-08-11
381 * First Behat LTS release
382 * Update Junit formatter to reflect latest junit format (thanks @alistairstead)
383 * Fix some container options
385 ## 2.4.6 - 2013-06-06
387 * New --stop-on-failure option
388 * Support JSON in environment variables
390 * Support Symfony 2.3
391 * Out-of-the-box support for PHPUnit assertions pretty output
393 ## 2.4.5 - 2013-01-27
395 * Added wrapping of lines in progress formatter
396 * Added `--append-to` option to be able to add snippets to custom class
397 * Both `ScenarioEvent` and `OutlineExampleEvent` now extend same `BaseScenarioEvent` class
398 * Highly improved ability to create simple custom extensions
399 * Always hide stack traces for `PendingException`
400 * Ensured compatibility with all major symfony versions
401 * Fixed configs import directive and loading precedence
402 * Fixed path to vendor dir (solves problem of custom vendor dirs)
404 ## 2.4.4 - 2012-09-12
406 * Fixed `RuntimeException` namespacing error
407 * Added `FormatterManager::disableFormatter(s)` method
408 * Updated Gherkin parser and fixed couple of helper bugs
410 ## 2.4.3 - 2012-07-28
412 * Fixed broken `output_path` setting ([issue #169](https://github.com/Behat/Behat/issues/169))
413 * Added shellbang to phar executable ([issue #167](https://github.com/Behat/Behat/issues/167))
414 * Added feature title to progress exceptions ([issue #166](https://github.com/Behat/Behat/issues/166))
415 * Tuned failed formatter to print only failed examples in outline ([issue #154](https://github.com/Behat/Behat/issues/154))
418 ## 2.4.2 - 2012-06-26
420 * Fixed broken autoloading with Composer installation
422 ## 2.4.1 - 2012-06-26
424 * Force custom context class usage if user changed it from `FeatureContext`
425 * Clarified `Context class not found` exception
426 * Use CWD for CLI options, basepath (config path) for everything else
427 * Pass `behat.extension.classes` container param to extensions during their load
428 * Tuned `event_subscriber` priorities
429 * Use `require_once` instead of `require` in closured loaders
430 * Fixed transformers bug with falsy transformations (that return **falsy** values)
431 * Fixed custom formatters definition bug
432 * Fixed formatter manager exception bug
433 * Fixed czech translation
434 * Fixed CS to be PSR2 compliant
436 ## 2.4.0 - 2012-05-15
438 * New extension system based on Symfony2 DIC component
439 * Refactored paths reading system (now relative paths are fully supported)
440 * Support latest Composer changes
441 * Removed static constraint for transformations
442 * Updated to latest Gherkin with immutable AST
443 * Fixed couple of definition snippet generator bugs
444 * Option for HTML formatter to provide step definition links
445 * Added fallback locale (in case if provided lang is unsupported yet)
446 * Print step snippets in HTML formatter only if they're enabled
447 * Escape placeholder brackets in HTML formatter
448 * Use different names for examples in JUnit formatter
451 ## 2.3.5 - 2012-03-30
453 * Fixed formatter language configuration and locale guesser
455 ## 2.3.4 - 2012-03-28
457 * Added `StepEvent::getLogicalParent()`. Fixed issue ### 115
462 * Implemented Gherkin caching support ([--cache](https://github.com/Behat/Behat/commit/753c4f6e392a873a640543306191d92e6dc91099))
463 * Line ranges filtering support (`behat features/some.feature:12-19`. Thanks @headrevision)
464 * `behat.yml.dist` configs support out of the box
468 ## 2.3.2 - 2012-01-29
470 * Fixed bug in `ErrorException`, that caused wrong exceptions on warnings and notices
472 ## 2.3.1 - 2012-01-26
474 * Updated error handler to avoid suppressed exceptions
475 * Autoload bootstrap scripts in their name order
476 * Updated Gherkin dependency to v## 2.0.1
481 * Switch to the Behat\Gherkin 2.0 usage
482 * Migration to the single-file translation
483 * Support for callables inside steps chains
484 * Support for `*.yml` and `*.php` as definition translations
485 * Added opposite options to option switchers (`--[no-]colors`, `--[no-]multiline`, etc.)
486 * Redesigned `--story-syntax`
488 * Performance improvements
491 ## 2.2.7 - 2012-01-13
493 * Added ability to search translated definitions with `--definitions`
494 * Fixed custom formatters use bug
496 ## 2.2.6 - 2012-01-09
498 * Fixed pretty and html formatters printing of undefined steps in outlines
500 ## 2.2.5 - 2012-01-07
502 * `BEHAT_PARAMS` env variable support (083092e)
503 * HTML formatter print styles optimization (@davedevelopment)
505 ## 2.2.4 - 2012-01-04
507 * Prevent method name duplication with definition snippets
509 ## 2.2.3 - 2012-01-04
511 * Fixed couple of `--append-snippets` bugs
513 ## 2.2.2 - 2011-12-21
515 * Fixed Composer deps
517 ## 2.2.1 - 2011-12-21
519 * Fixed Composer package bin
521 ## 2.2.0 - 2011-12-14
523 * Multiple formats and outputs support
524 * New `snippets` formatter
525 * New `failed` formatter
526 * Updated output of `-d` option
527 * Search abilities added to `-d` option
528 * New `--dry-run` option
529 * New `--append-snippets` option
530 * Rerun functionality refactored to use `failed` formatter internally
531 * Overall code refactoring and cleaning
532 * Polish translation added (Joseph Bielawski)
533 * Spanish translation updated (Andrés Botero)
536 ## 2.1.3 - 2011-11-04
538 * Substep translations support
539 * Correctly print undefined substeps in pretty printer
540 * @Transform callback now gets all provided matches
541 * Always set proper encoding (UTF## 8)
546 * Fixed filtered feature hooks
547 * Fixed JUnit formatter time output in some locales
549 ## 2.1.1 - 2011-10-09
551 * Fixed multiline titles printing bug
552 * Fixed outline parameter inside step argument printing bug
554 ## 2.1.0 - 2011-09-12
556 * Totally revamped HTML formatter template
557 * Added transliteration support to definition snippets (for most langs)
558 * Written missed features and fixed some bugs
559 * Stabilization fixes for 3 major OS: MacOS/Ubuntu/Windows
561 ## 2.0.5 - 2011-08-07
563 * Cleaned ContextDispatcher extension points
564 * Cleaned context-parameters passing behavior
566 ## 2.0.4 - 2011-08-02
568 * Subcontexts aliasing and retrieving
569 * Multiple steps chaining
570 * `--snippets-paths` option to show steps alongside the snippets
571 * getContextParameters() method in SuiteEvent and FeatureEvent
572 * Updated to Symfony2 stable components
573 * Spanish translation
576 ## 2.0.3 - 2011-07-20
578 * Fixed JUnit formatter CDATA output
580 ## 2.0.2 - 2011-07-17
582 * Added extra checks to context instance mapper
583 * Fixed i18n support in definitions printer
584 * Refactored Gherkin tags inheritance
586 ## 2.0.1 - 2011-07-12
588 * Exception prefix added to statuses. Now you should throw `PendingException` instead of just
591 ## 2.0.0 - 2011-07-12
593 * Brand new Context-oriented architecture
594 * Refactored --definitions (--steps) to print more useful info
595 * Rafactored --story-syntax (--usage) to print more useful info
596 * Refactored Command to use separate processors
597 * Added --no-paths option
598 * Added --no-snippets option
599 * Added --expand option to expand outlines
602 * Steps chaining added
603 * Added BEHAT_ERROR_REPORTING constant to change error_repoting level
604 * Fixed some Gherkin bugs
605 * Fixed lots of bugs in Behat itself
607 ## 1.1.9 - 2011-06-17
609 * Updated to the latest Symfony components
611 ## 1.1.8 - 2011-06-09
613 * Fixed empty match printing in Pretty and HTML formatters
614 * Updated to latest Symfony components
616 ## 1.1.7 - 2011-06-03
618 * Fixed steps colorization bug in outline
619 * Additional checks in config import routine
621 ## 1.1.6 - 2011-05-27
623 * Updated Symfony vendors
624 * Refactored console formatters
626 ## 1.1.5 - 2011-05-17
628 * Fixed CWD path finding
629 * Fixed HTML formatter (thanks @glenjamin)
631 ## 1.1.4 - 2011-05-03
633 * Fixed `--out` option usage critical bug
634 * Added ability to specify `output_path` from config file
636 ## 1.1.3 - 2011-04-28
638 * JUnit formatter fix
639 * Formatters basePath fix. Now formatters uses CWD as path trimmer
640 * Relative paths locator bug fix
641 * Show table argument header in HTML formatter
643 ## 1.1.2 - 2011-04-27
645 * Fixed custom features path locator bug(issue ### 020)
650 * Fixed paths finding routines
651 * Totally refactored BehatCommand
652 * Added rerun functionality (`--rerun`)
653 * Ability to remove previously specified paths in `behat.yml`
654 * Bugfixes and little tweaks
656 ## 1.1.0 - 2011-04-04
658 * New configuration system with profiles and imports support
660 * Environment parameters support
661 * Named regex arguments support
662 * Japanese translation for formatters
663 * JUnit formatter bugfixes
664 * HTML and Pretty formatters multiple arguments print bugfix
665 * Step snippets (proposals) bugfixes
666 * Updated vendor libraries
668 ## 1.0.0 - 2011-03-08
673 ## 1.0.0RC6 - 2011-03-03
675 * Cleaned command options
676 * Added --init option
677 * Multiple paths support in behat.yml
678 * Application options refactoring
680 ## 1.0.0RC5 - 2011-02-25
683 * Bundled features hooks optimizations
685 ## 1.0.0RC4 - 2011-02-23
687 * Pretty formatter tag printing fix
688 * Custom formatter specification fix in `behat.yml`
689 * Symfony components updated
690 * Extension configuration manager (Symfony\Component\Config component)
691 * Cleaning of `behat.yml` configurator (thanks to Symfony\Component\Config)
692 * Additional formatter parameters support in `behat.yml`
694 ## 1.0.0RC3 - 2011-02-18
696 * Event dispatcher binding optimizations
697 * Command API optimizations for easier overloading
698 * Formatter path trimming bugfix
699 * BehatExtension config merging support
701 ## 1.0.0RC2 - 2011-02-15
703 * Step printing option bugfix
705 ## 1.0.0RC1 - 2011-02-15
707 * Gherkin DSL parser is standalone project
708 * Own Behat namespace for both Behat & Gherkin
709 * Fully rewritten formatters (much cleaner & beautifull API)
710 * Big refactoring of whole Behat code (clean code DRYing)
711 * Config file is now handled by standart-driven DIC extension (cleaner `behat.yml`)
712 * API documentation retouched
713 * New `--strict` option
714 * New `--no-multiline` option
715 * Feature examples in your language with `--usage`
716 * Available definitions listing with `--steps`
718 * Command refactoring (much cleaner API & actions)
719 * Event system refactoring
720 * 42 new languages with new Gherkin DSL parser
722 ## 0.3.6 - 2010-12-07
724 * [Behat,Gherkin] Fixed French support includes (fr)
726 ## 0.3.6 - 2010-12-06
728 * [Behat] Updated Symfony2 Components to latest PR4
729 * [Gherkin] Added French support (fr)
730 * [Gherkin] Added German support (de)
731 * [Behat] Small bugfixes
733 ## 0.3.5 - 2010-11-19
735 * [Behat] Refactored EnvironmentBuilder to allow Environment service definition overload
737 ## 0.3.4 - 2010-11-18
739 * [Behat] Introduced environment builder
740 * [Gherkin,Behat] id locale support
742 ## 0.3.3 - 2010-11-07
744 * [Gherkin] Added ability to create Table & PyString nodes with hands (in your step to step calls for example)
745 * [Gherkin] Added getRowsHash() method to TableNode, so now you can "rotate" given tables
746 * [Gherkin] You now can add comments before language specification in your feature files
748 ## 0.3.2 - 2010-11-06
750 * [Gherkin] Added ability to specify extended langs (en-US)
751 * [Behat,Gherkin] Added pt-BR translation
753 ## 0.3.1 - 2010-11-02
755 * [Behat] JUnit formatter
756 * [Behat] Pretty & HTML formatter background hooks fix
757 * [Behat] Other small fixes
759 ## 0.3.0 - 2010-11-02
761 * [Behat] Refactored tags filter
762 * [Behat] Added name filter
763 * [Behat] Refactored hooks
764 * [Behat] Added tagged/named hooks
765 * [Behat] Customizable HTML formatter with w3c valid default markup
766 * [Behat] Ability to specify out path for formatters
767 * [Behat] Bunch of new options
768 * [Behat] DIC optimisations
770 ## 0.2.5 - 2010-10-22
772 * [Behat] Format manager introduced
773 * [Behat] Formatters refactoring
774 * [Behat] Optmized container parameters to support EverzetBehatBundle
775 * [Behat] --no-color => --no-colors
777 ## 0.2.4 - 2010-10-19
779 * [Behat] Autoguess of colors support
780 * [Behat] Formatter setup bugfix (properl casing)
782 ## 0.2.3 - 2010-10-19
784 * [Behat] Filters optimisations
785 * [Behat] Changed Core Loaders with topic-specific (`StepDefinition\Loader\PHPLoader`,
786 `Features\Loader\GherkinLoader`)
787 * [Behat] Simplified TestCommand in prepare of Symfony2 BehatBundle
788 * [Behat] Configuration file/path setting update (you can now create `behat.yml` inside `./config/behat.yml` & Behat
790 * [Behat] Updated Redundant & Ambiguous exceptions behavior
792 ## 0.2.2 - 2010-10-10
794 * [Behat] Configuration file/path setting update
796 ## 0.2.1 - 2010-10-10
798 * [PEAR] Fix path to phpbin on installation
800 ## 0.2.0 - 2010-10-08
802 * [Behat] Brand new stateless testers, based on Visitor pattern
803 * [Behat] Refactored event listeners & event names
804 * [Behat] Refactored formatters to confirm with new stateless testers (statuses now sent as event parameters)
805 * [Behat] Refactored ConsoleFormatter (and removed base formatter)
806 * [Behat] Removed custom I18n classes & refactored Translator routines in flavor of Symfony\Component\Translation
807 * [Behat] Added missed translation strings into XLIFF files
808 * [Behat] Optimised multiline arguments (Node instances are sent to definitions instead of their plain representations)
809 * [Behat] Support for Scenario Outline tokens replace in multiline arguments (tables & pystrings)
810 * [Behat] Step arguments transformations (including table transformations)
811 * [Behat] Colorize inline step arguments
812 * [Behat] Optimized exit statuses of CLI
813 * [Behat] Added ability to turn-off colors
814 * [Behat] Added ability to translate formatters output with `--i18n` option
815 * [Behat] Bunch of new core feature tests
816 * [Gherkin] Parser now uses Symfony Dependency Injection to
817 * [Gherkin] Refactored parser to be like AST (Nodes that supports Visitor pattern)
818 * [Gherkin] Comments support
819 * [Gherkin] Fixed PHPUnit warnings
820 * [Behat,Gherkin] PEAR release script to support http://pear.everzet.com release model
821 * [Behat,Gherkin] DIC naming refactoring
822 * [Behat,Gherkin] Autoloader refactoring
823 * [Behat,Gherkin] Removed Zend & Goutte depencies
825 ## 0.1.5 - 2010-09-25
827 * Added ability to call other steps inside step definition
829 * Refactored container creation routine
830 * Single quotes support in step definitions
831 * Added tests for hooks, profiles, inline steps
833 ## 0.1.4 - 2010-09-16
836 * Removed logic from object constructors
837 * Added Loader & Filter interfaces
839 ## 0.1.3 - 2010-09-14
841 * Ability to specify arrays of paths/files for loaders
842 * Event hooks and support for `support/hooks.php`
843 * Formatters listens events with smallest priority
844 * Don't try to load steps if `steps` folder doesn't exists
845 * Bugfixes/refactoring
847 ## 0.1.2 - 2010-09-10
849 * Added ability to read from `behat.yml` and `behat.xml`
850 * Moved tags filter to separate object
851 * Refactored injection controller
852 * Optimized event names in event dispatcher
853 * Other small fixes/refactorings
855 ## 0.1.1 - 2010-09-09
857 * Added `--tags` option
858 * Changed environment (world) routines
859 * Added lots of core tests (writed in Behat itself)
861 ## 0.1.0 - 2010-09-08
865 [Unreleased]: https://github.com/Behat/Behat/compare/v3.4.1...HEAD
866 [3.4.1]: https://github.com/Behat/Behat/compare/v3.4.0...v3.4.1
867 [3.4.0]: https://github.com/Behat/Behat/compare/v3.3.1...v3.4.0
868 [3.3.1]: https://github.com/Behat/Behat/compare/v3.3.0...v3.3.1
869 [3.3.0]: https://github.com/Behat/Behat/compare/v3.2.3...v3.3.0
870 [3.2.3]: https://github.com/Behat/Behat/compare/v3.2.2...v3.2.3
871 [3.2.2]: https://github.com/Behat/Behat/compare/v3.2.1...v3.2.2
872 [3.2.1]: https://github.com/Behat/Behat/compare/v3.2.0...v3.2.1
873 [3.2.0]: https://github.com/Behat/Behat/compare/v3.1.0...v3.2.0
874 [3.1.0]: https://github.com/Behat/Behat/compare/v3.0.15...v3.1.0
875 [3.0.15]: https://github.com/Behat/Behat/compare/v3.0.14...v3.0.15
876 [3.0.14]: https://github.com/Behat/Behat/compare/v3.0.13...v3.0.14
877 [3.0.13]: https://github.com/Behat/Behat/compare/v3.0.12...v3.0.13
878 [3.0.12]: https://github.com/Behat/Behat/compare/v3.0.11...v3.0.12
879 [3.0.11]: https://github.com/Behat/Behat/compare/v3.0.10...v3.0.11
880 [3.0.10]: https://github.com/Behat/Behat/compare/v3.0.9...v3.0.10
881 [3.0.9]: https://github.com/Behat/Behat/compare/v3.0.8...v3.0.9
882 [3.0.8]: https://github.com/Behat/Behat/compare/v3.0.7...v3.0.8
883 [3.0.7]: https://github.com/Behat/Behat/compare/v3.0.6...v3.0.7
884 [3.0.6]: https://github.com/Behat/Behat/compare/v3.0.5...v3.0.6
885 [3.0.5]: https://github.com/Behat/Behat/compare/v3.0.4...v3.0.5
886 [3.0.4]: https://github.com/Behat/Behat/compare/v3.0.3...v3.0.4
887 [3.0.3]: https://github.com/Behat/Behat/compare/v3.0.2...v3.0.3
888 [3.0.2]: https://github.com/Behat/Behat/compare/v3.0.1...v3.0.2
889 [3.0.1]: https://github.com/Behat/Behat/compare/v3.0.0...v3.0.1
890 [3.0.0]: https://github.com/Behat/Behat/compare/v2.5.5...v3.0.0