- Bugfix: Fix a class autoloading issue.
- Bugfix: Ignore errors triggered through @.
- Bugfix: Fix a monkey patching issue with strict types declarations.
- Bugfix: Fix CLI autoloading.
- Bugfix: Fix autoloading step.
- Add: Embbed a compatible Composer Autoloader to support files autoloading.
- Add: Allow to inject dependencies at a spec level.
- BC Break: Remove PHP 5.4 support
- BC Break: The patchers entry point is now the first entry point.
- BC Break: The interceptor entry point has been removed.
- BC Break: Every specification must have a message.
- BC Break: Every Specification must have a unique message path
- BC Break: Rename
--pattern
option to a more meaningful name, it's now--grep
- BC Break: The filter API has been changed
- BC Break: Internal classes refactoring
- BC Break: The Interceptor class has been removed
- Bugfix: Fix
__DIR__
&__FILE__
magic constants rebase.
- Bugfix: Fix
void
return type stubbing.
- Bugfix: Support 7.1
void
return type.
- Bugfix: Update Kahlan's autoloader reference when patched.
- Bugfix: Fix inaccurate actually called times number in report error description messages.
- Bugfix: Fix a reporting issue which report errored specs as pending in some circumstances.
- Bugfix: Fix a monkey patching issue with curly braces namespace definitions.
- Bugfix: Add
clone()
to JIT ignored statements. - Bugfix: Fix a coverage reporting issue with global namespace definitions.
- Add: Enhance interoperability between frameworks.
- Bugfix: Fix exit/die short syntax patching.
- Change: Report specs with incomplete expectations as pending.
- Bugfix: Fix a coverage issue on windows.
- Bugfix: Fix wrongly group use declarations reported as coverable code (PHP>=7).
- Bugfix: Fix wrong reported logs introduced in 3.1.4.
- Bugfix: Fixes error catching in beforeAll()/afterAll().
- Bugfix: Parse Nowdoc syntax correctly.
- Bugfix: Parses alternative control structures as dead code for code coverage.
- Bugfix: Fix some HHVM issues.
- Bugfix: Fix an issue with
given()
beeing regenerated when not expected.
- BC break: Remove the substitution feature (i.e allow()->toBe()) for PHP<7. It may generates some syntax errors since the uniform variable syntax is only supported by PHP>=7.
- Add: Support HHVM lambda through ==> syntax.
- Change: Parser identify interface's signatures as signatures and not function.
- Change: Filter out files with no coverable code inside from coverage reporting.
- Bugfix: Fix an issue on "travis" filesystem.
- Bugfix: Fix a couple of Windows issues.
- Add: Add
allow()
DSL. - Add: Add
toBeCalled()
matcher. - Add:
toReceive
can expect a chain of stubbed methods to be called. - Add: Monkey patching can patch all instances of a class to be a specific instance.
- Add: Argument requirements can be applied on a chain of methods using
where()
. - Add: It's now possible to mark specs as pending by adding no expectation inside or mark them as excluded when using the
xit
,xcontext
,xdescribe
syntax. - Change: Refactor the reporting to provide more meaningful messages on failure.
- Bugfix: Fix an issue with
toReceive()/toBeCalled
and stubs where past called methods were taken into account. - BC break:
Stub::on()
is now deprecated useallow()
instead. - BC break:
Monkey::patch()
is now deprecated useallow()
instead. - BC break: Rename
'params'
option to'args'
inDouble::instance()
. - BC break: Rename
Stub::create()
toDouble::instance()
. - BC break: Rename
Stub::classname()
toDouble::classname()
. - BC break: Rename
before()
andafter()
tobeforeAll()
andafterAll()
. - BC break: Rename
Args
toCommandLine
(i.e.$this->args()
become$this->commandLine()
inkahlan-config.php
) - BC break: Remove
toReceiveNext
matchers in flavor of->ordered
attribute to be more close to Rspec way. - BC break: Refactor the reporting API.
- BC break: Cached files are no more compatible, cached files needs to be purged.
- Bugfix: Ignore
declare()
statement from coverable statements.
- BC break: Moving Kahlan to its own organization.
- Bugfix: Allow passing 'string' as Stub's implements option.
- Add: Introduce the KAHLAN_VERSION constant.
- Add: Better support of IDE though autocomplete.
- Add: Implement call counting matcher on purpose.
- Bugfix: Fix naming collison conflicts with global functions.
- Bugfix: Fix a parsing issue when a class extends statement matches a use definition.
- Bugfix: Fix an issue related to a BC-break introduced by a composer optimization https://github.com/composer/composer/commit/fd2f51cea8e5f1ef978cd8f90b87b69dc1778976.
- Bugfix: Fix the release number.
- Change: Output the total coverage after per file coverage.
- Bugfix: Skip specs when related extentions are not available.
- Bugfix: Fix return types of non-builtins types in Stubs generation.
- BC break: Exit and display an error message when
--coverage
is used but no driver are available.
- Bugfix: Fix stub generation for non-builtin PHP7 return types.
- Add: Add a JSON reporter.
- Add: Add a TAP reporter.
- Add: Allow to redirect reporter outputs to a file.
- BC break: the
--reporter
option is now managed as an array.
- Change: Internal dependency container function refactoring.
- Add: Improve code coverage accuracy for unconsistant XDEBUG/PHPDBG code coverage result.
- Add: Support PHP7 variadic functions.
- Add: Support PHP7 scalar typehints.
- Add: Support PHP7 return types.
- Add: Support PHP7 group use declarations.
- Bugfix: Fixes a Layer patcher issue when extends is not an absolute class name.
- BC break: Patcher can now be applied lazily.
- Bugfix: Fix a reporting issue related to the new repository structure.
- BC break: Use PascalCase conventions instead of lowercase for all namespaces.
- Add: Create a standalone version.
- Add: Reintroduce PHP 5.4 support.
- BC break:
use filter\Filter
must now beuse kahlan\filter\Filter
inkahlan-config.php
.
- Add: Add
given()
function to set lazy loadable variables.
- Add: Allow Kahlan's binary to deal with custom composer.json
"vendor-dir"
config.
- Bugfix: Make sure Kahlan's global function can't be includes twice.
- Bugfix: Fix a cwd issue when installed globally.
- Add: Add a lcov compatible exporter.
- Bugfix: Fixe a minor issue with the istanbul exporter.
- Add: Add an istanbul compatible exporter.
- Add: Restore IDE autocomplete feature for
expect()
. - Bugfix: Fixe
PointCut
patching with generators.
- Bugfix: Fix Kahlan's disable environment variable.
- Add: Allow to disable Kahlan functions by environment variable.
- Bugfix: Fixes reported backtrace which was not accurate for deferred matchers.
- Bugfix: Fix
ToContainKey
when dealing with plain arrays andnull
values.
- Bugfix: Fix some Windows related issues.
- Add: Allow to set contextualized matchers.
- Add: Introduce the
waitsFor
statement. - BC break: Drop PHP 5.4 support.
- BC break: Internal classes has been refactored/renamed.
- Bugfix: Escape file path for coverage metrics.
- Bugfix: Fix an issue when stub needs to auto override methods where parameters are passed by reference.
- Bugfix: Fix a control structures issue when present in uppercase.
- Bugfix: Fix the order of
toContain()
matcher.
- Add: Add the
toContainKey()
matcher. - Bugfix: Monkey patching now supports
or
,and
&&xor
alternative syntax.
- Bugfix: Make report backtrace more accurate on exceptions.
- Add: Remove composer minimum stability requirement.
- Add: Add the command line --cc option to clear the cache.
- Add: Auto clear cache on "composer update".
- Add: Add the command line --version option.
- Add: Add
toMatchEcho
matcher. - Bugfix: Fix report duplication of some skip exceptions.
- Bugfix: Reset
not
to false after any matcher call.
- Bugfix: Fix a double open tag issue with the
Layer
patcher. - Bugfix: Fix missing pointcut patching in the
Layer
patcher.
- Add: Allow Stubs to override all public method of their parent class by setting the
'layer'
option totrue
. - Add: Introduce the
Layer
proxy to be able to stub methods inherited from PHP core method. - Change: The look & feel of reporters has been modified.
- Bugfix: Add a default value for stubbed function parameters only when exists.
- Bugfix: Return absolute namespace for typehint
- Bugfix: Generalize method overriding with stubs.
- BC break: The Stubs
'params'
option now identifies each values to pass to__construct()
. - BC break: Reporter's hooks has been renamed and now receive a report instance as parameter instead of an array.
- Add: Implement missing Jasmine
expect(string)->toContain(substring)
behavior. - Change: Allow arguments to also be set in kahlan config files.
- Bugfix: Fix Monkey patcher when some patchable code are outside namespaces/classes or functions.
- Bugfix: Resolve default cache path (based on
sys_get_temp_dir()
) to be a real dir on OS X.
- Deprecate: Feprecate ddescribe/ccontext/iit in flavor of fdescribe/fcontext/fit (Jasmine 2.x naming)
- Bugfix: Fix
use
statement patching for partial namespace
- Change: The terminal reporter displaying has been modified
- Bugfix: Fix code coverage driver to make it work with HHVM
- BC break: The
'autoloader'
filter entry point has been renamed to'interceptor'
- Add: New reporter
--reporter=verbose
- Initial Stable Release