0.27.0 (2023-05-16)
Added:
- Add negation mutators by @manhunto in infection#1753
- Calculate results and show metrics if Infection is interrupted with
SIGINT
(ctrl + c) by @maks-rafalko in infection#1857
Changed:
- #857 Treat log paths as relative to config directory by @LeoVie in infection#1851
- Do not mutate
$var instanceof ClassName
insideassert()
function as it's impossible or hard to kill by @maks-rafalko in infection#1852
Fixed:
- During all "unwrap" functions, return the real values instead of values wrapped with
Node\Arg()
class by @maks-rafalko in infection#1853 - Make PHPUnit 10.1 XML coverage report and test cases names with provider compatible with Infection and old format by @maks-rafalko in infection#1854
Internal:
- Upgrade PHP-CS-Fixer by @maks-rafalko in infection#1855
- Add GH Action to requrie tests in Pull Requests by @maks-rafalko in infection#1848
- Update
sebastian/differ
to the latest verions by @maks-rafalko in infection#1850 - Allow fidry/cpu-core-counter v0.5 by @Slamdunk in infection#1826
- Remove
xdebug-filter.php
as it's not used and deprecated by @maks-rafalko in infection#1856 - Upgrade PHPStan to the latest version and fix some errors by @maks-rafalko in infection#1859
- Upgrade the codebase up to PHP 8.1 syntax using Rector by @maks-rafalko in infection#1860
- Upgrade psalm to the latest version by @maks-rafalko in infection#1858
- Integrate
sidz/phpstan-rules
to avoid magic numbers in our code base by @maks-rafalko in infection#1861
- @manhunto made their first contribution in infection#1753
- @LeoVie made their first contribution in infection#1851
Full Changelog: https://github.com/infection/infection/compare/0.26.21...0.27.0
0.26.20 (2023-04-15)
Added:
- Add support for PHPUnit 10.1 and use
<source />
tag for coverage instead of<coverage />
by @maks-rafalko in https://github.com - Log thread count as part of performance by @icanhazstring in infection#1836
Changed:
- Bump minimum PHP version required to PHP 8.1 by @theofidry in infection#1765
- Declare conflict with uncompatible versions of antecedent/patchwork by @sanmai in infection#1829
- Change CDN URL for mutation-testing-elements.js by @maks-rafalko in infection#1830
- Trying to remove false positive on logical or. by @Neirda24 in infection#1801
0.26.19 (2023-02-06)
Added:
- PHPUnit 10 support
0.26.18 (2023-01-21)
Added:
- New logger "summaryJson" - machine-readable file in JSON format. (#1808)
0.26.17 (2023-01-19)
Added:
- PHP 8.2 support
Fixed:
- ArrayItemRemoval mutator should not mutate an array when set as an attributes argument #1797
- PHP Warning on startup when using Infection from PHAR #1770
- PHP 8.2: Deprecated: Use of "static" in callables is deprecated in .../vendor/webmozart/assert/src/Assert.php on line 939 #1802
- False positive: Throw_ mutant not covered by tests #1778
- Line CodeCoverage is not a reliable source of truth #1750
0.26.16 (2022-10-22)
Added:
- Add new
MatchArmRemoval
mutator infection#1744 - Add new
CatchBlockRemoval
mutator infection#1742 - Add new
Catch
_ mutator infection#1741 - Add new
UnwrapFinally
mutator infection#1740
Fixed:
- Fix the issue with anonymous classes inside arrays infection#1745
Changed:
- Do not mutate coalesce operator in the Assignment mutator mutator infection#1739
- Make CPU cores count more tolerant towards system command errors infection#1733
0.26.0 (2022-01-10)
Added:
- Implement the Stryker HTML report infection#1625
- Add new
--git-diff-lines
option to generate Mutants only for the changed lines infection#1632 - Show ignored mutants on progress and summary infection#1612
Changed:
- Replace
badge
logger with more advancedstryker
logger infection#1629 - Mark Mutant as killed if Test Framework returns non-zero exit code infection#1621
- Set
failOnRisky
,failOnWarning
totrue
if parameters are not already set for mutants infection#1630 - Automatically set
XDEBUG_MODE=coverage
if needed infection#1518 - Add
dg/bypass-finals
to the conflict packages list infection#1605
0.25.4 (2021-12-08)
Added:
- PHP 8.1 support infection#1535
- Allow Symfony 6 infection#1606
- Set
XDEBUG_MODE
for processes with coverage infection#1518 - Add
dg/bypass-finals
to the conflict packages list infection#1605
Changed:
- Stop Infection execution with
0
exit code when git diff filter returns empty result infection#1600 - feat: Concat does not generate mutant when both operands are the same infection#1602
0.25.0 (2021-09-05)
Added:
- Detect syntax errors during mutation analysis and differentiate them from all errors #1555 #262
- Add
$schema
to generatedinfection.json
config file for autocomplete #1553 #1432
Changed:
- [Performance] Add files to coverage whitelist instead of the whole directories when
--filter
or--git-diff-filter
are used #1543 - [Performance] Speed up Infection runs by remembering which test killed a mutant #1519 #1549
- [internal] Allow Infection test suite to be executed in parallel using Paratest #1544
- Generate
infection.json
(without.dist
postfix) by default #1554 - Do not mark Mutant as Killed when no tests were executed #1546
Fixed:
- Display time and consumed memory even in case of insufficient MSI #1562
- Trim "\n" and "\t" characters when replacing relative paths with absolute ones during XML config creation #1550 #1542
- For Mutant's
phpunit.xml
, setexecutionOrder="default"
to prevent random ordering of the tests since we need them to be sorted (fastest - first) #1547
0.24.0 (2021-07-25)
Added:
- [Mutator] Add Mutator
SpreadAssignment
#1529 - [Mutator] Add Mutator
SpreadRemoval
#1529
Changed:
- [Performance] Improve Infection performance executed against slow test suites #1539
- Allow using MSI Badge for multiple branches #1538
- Add Mutator information to GitHub annotation logger #1540
- [BC BREAK] Rename
Spread
mutator toSpreadOneItem
#1529
0.23.0 (2021-05-13)
Added:
- Add support for
Pest
test framework #1516
Fixed:
- Multiplication mutator should not mutate when return value is integer #1515
Changed:
- [BE BREAK] Remove
CodeCoverageAnnotationIgnorer
#1517 - Upgrade xdebug-handler to v2 #1510
0.22.0 (2021-04-24)
Added:
- Add
INFECTION
andTEST_TOKEN
environment variables for each Mutant process #1504
Fixed:
- composer install --no-scripts installs 0.13.4 instead of 0.15.0 infection#876
- Invalid mutator config Bug infection#1479
- Error: Expected a value other than null infection#1480
- git-diff-filter option on MacOS doesn't work infection#1492
- TypeError: Argument 1 passed to PhpParser\Node\Scalar\LNumber::__construct() must be of the type int, float given infection#1484
- Do not increment max integer value infection#1486
- Do not decrement min integer value infection#1488
- Fix file not found exception for Codeception Cests
0.21.0 (2021-01-27)
Added:
- Introduce
--noop
option to run Noop mutators that does not change the source code (AST) infection#1465 - Add support for
@infection-ignore-all
annotation infection#1468 - Introduce
--noop
option to run Noop mutators that do not change the source code (AST) infection#1465 - Add a
describe
command infection#1442 - [MUTATOR] Add
Concat
operator mutator infection#1440 - [MUTATOR] Add
ConcatOperandRemoval
operator mutator infection#1440 - [MUTATOR] Add
While
expression mutator infection#1405 - [MUTATOR] Add
DoWhile
expression mutator infection#1411 - [MUTATOR] Add
PregMatchRemoveFlags
mutator - remove flags one by one infection#1462 - [MUTATOR] Add
PregMatchRemoveCaret
infection#1455 - [MUTATOR] Add
PregMatchRemoveDollar
mutator infection#1455 - [MUTATOR] Add
NullSafe
operator mutator infection#1457
Changed:
- [BC BREAK] Removed
OneZeroInteger
mutator in favor ofIncrementInteger
/DecrementInteger
mutators - [BC BREAK] Rename
@zero_iteration
profile to the@loop
#1407
0.20.0 (2020-11-01)
Added:
- Add github logger to be able to use Annotations on GitHub Actions infection#1368
- Add
--diff-git-filter
&--git-diff-base
options infection#1368 - [MUTATOR] Implement UnwrapSubstr mutator infection#1400
- [MUTATOR] Implement UnwrapStrRev mutator infection#1399
- [MUTATOR] Implement UnwrapRtrim mutator infection#1396
- [MUTATOR] Implement UnwrapStrIreplace mutator infection#1397
- [MUTATOR] Implement UnwrapStrShuffle mutator infection#1398
- [MUTATOR] Implement UnwrapLtrim mutator infection#1395
- [MUTATOR] Add Ternary operator mutator infection#1390
- [MUTATOR] Add Flip Coalesce operator mutator infection#1389
Changed:
- Remove redundant Coalesce Mutator and rename FlipCoalesce to Coalesce infection#1391
0.19.0 (2020-10-28)
Added:
- [MUTATOR] Introduce YieldValue mutator #1342
Changed:
- Drop support for PHP 7.3 #1340
- Don't mutate
$limit
argument from 0 to -1 and from -1 to 0 inpreg_split
function #1347
Fixed:
- PHPUnit 9.3 compatibility issue #1283
- In Assert.php line 2042: Expected a value other than null #1357
- Don't mutant
$limit
0, -1 inpreg_split
#1345
0.18.0 (2020-10-18)
Added:
- Exclude mutations matching the source code by Regular Expression #1326
- [MUTATOR] Add mutator to remove shared cases #1326
Changed:
- Allow fractional values for timeout #1313
0.17.0 (2020-08-17)
Added:
- Set
failOnRisky
,failOnWarning
totrue
if parameters are not already set #1280 - Add JSON logger, useful for CI and analyzing results of Infection programmatically #1278
- Do not mutate clean up functions #1285
- Restrict installing with faulty versions of PHPUnit's coverage package #1295
- Add
--no-progress
option to opt-out the CI detection #1261 - InstanceOf_ mutator #1232
Changed:
- Exclude mutations that are over specified time limit #1171
- Decrement mutator makes array indexes negative #1270
- Upgrade infection/include-interceptor to ^0.2.4 #1288
- U for uncovered #1233
- Round MSI scores #1190
Fixed:
- symbolic link trouble + PHPUnit unknown #778
0.16.0 (2020-03-22)
Added:
- Allow the initial test suite to be skipped #1042
- Implements dry-run mode #1183
- Add notice to console output if actual msi is higher than required msi #877
- Allow to configure ignore globally #1104
- Parallel source file collector #1097
- Concurrent mutation generator #1082
- Add accepted ADR entries #1192
- Increase niceness for mutant processes #1152
- Enhancement: Use ondram/ci-detector to resolve build context #1135
- Automatically install Test Framework adapter if needed #1102
- Accounting For Codeception Cest Tests In JUnit File. #1074
- Introduce ConfigurableMutator #1012
- Enhancement: Allow specifying a few command line options via config #789
- Use
infection/extension-installer
to automatically register Test Framework Adapters #1019 - Exclude --configuration from PhpUnit options #941
Changed:
- Drop support for PHP 7.2 #1132
- Use coverage report as a primary source of files to mutate #1106
- Extract PhpSpec Test Framework adapter to a separate package #1052
- Extract Abstract TestFrameworkAdapter & Codeception to separate packages #933
- Optimize JUnit test lookups to stop on the first element #1172
- Rename InfectionCommand to RunCommand #1188
- Rename LineCodeCoverage to Trace #1164
- Remove dependency on
OutputInterface
for the loggers #1157 - Update continuous-integration.yml to use PHP 7.3 #1142
- Bundle test framework adapters into PHAR #1141
- Migrate to the new Stryker dashboard API #1136
- Make PHPUnit fail on warning or risky #1115
- Improve TextLogger #1110
- Remove MutantWasCreated #1096
- Introduce specific configuration objects for the mutators #1005
Fixed:
- Fix the order in which the infection configuration files are loaded #1105
- Fix scoping #1072
- Fix false positives since update to 0.14.x #815
- Ignore bogus "not installed" exception from PackageVersions #1151
- Don't let PHP 7.4 builds fail #1130
- Provide a more user-friendly error when the schema path is invalid #1080
Added:
- [MUTATOR] Add 'clone' removal mutator #864
- [MUTATOR] Add
UnwrapStrReplace
mutator #831 - Add support for Codeception Test Framework #800
- Allow text logs to be written to a PHP stream #821
- Add version number to ASCII banner (#809) #855
- Infection should emit its version when run #808
- Allow to enable pcov with initial-tests-php-options #830
- Enable Symfony 5 components #842
Changed:
- According to PHP 7.4 changelog,
stream_set_option()
should always return false #837 - Do not call deprecated/removed method for new versions of
symfony/process
#843 - Introduce TestFrameworkAdapter interface #840
- Rework the configuration #750
Fixed:
- TypeError not detected as failing test #836
- Make interceptor resilient to file not found warnings (#846) #862
- The profile keys are missing in the schema.json #732
- Fix Docker builds for PHP 7.4 #818
- Fatal error by UnwrapArrayMerge and unpack #801
- The console output is missing a few line breaks / new lines #798
Added:
- [Mutator] Mutate
mb_str_split
tostr_split
#787 - [Mutator] Spread operator in Array Expression - leave only the first element #784
- [Mutator] Leave only one element in the non empty returned array #735
- Use xdebug-filter to reduce the time needed to collect coverage #781
- Add Symfony PHPUnitBridge #755
- Use codingmachine/safe #745
- Allow installation only with the most recent versions for dev dependencies #744
- Add PCOV to TravisCI #741
- Ensure the dev tools are up to date #725
Changed:
- Bump requirements up to PHP 7.2 #700
- Do not round down values in MetricsCalculator #701
- Dramatically reduce memory usage by using classes instead of object-like arrays #710
- Rework infection command #767
- Remove the self-update command #688
- Move coverage data to the mutation #733
- Deactivate
stderr
redirection in phpunit.xml #791 - Add missed profile and mutator keys to the validation schema.json #782
- Move
e2e
tests to the correct place. #780 - Remove Travis' phpunit binaries since they conflicts with vendor's phpunit #773
- Consume directly the InfectionContainer instead of a generic PSR-11 #761
- Bump the versions used where appropriate #743
- Update used memory detection for PHPUnit 8 #739
- Update E2E tests to use PHPUnit 8 #738
- Update xdebug-handler to 1.3.3, remove workarounds #737
- Upgrade to PHPUnit 8.2.3 #713
- Error out when 0 lines of code were covered #602
- Add
ignore
property for each Mutator in JSON schema. #699 - PhpProcess: Reset $_ENV if it is in use #693
- Update alt text of slack badge #707
Fixed:
- Multiple extra test framework options escape in the wrong way #615
- "Return value of MutatorConfig::getMutatorSettings() must be of the type array, object returned" with mutator that has settings #666
- Deal with object settings #772
- initialTestsPhpOptions does not get picked from infection.json[.dist] #672
- Sort & Remove duplicates entries in .gitignore #724
- ArrayItemRemoval configuration doesn't support the "ignore" property #698
- Error about missing phar pubkey file on self-update #684
- Target MSI on Travis with empty --filter #631
- Zero percent code coverage is not an issue for Infection #488
- Infection config generator fails to handle multiple ignored directories #580
- Fix Infection config builder: make sure it always creates an array for excluded dirs but not object #714
Full Changelog (2019-05-18)
Added:
- Log the InitialTestsRun command line when
--debug
is used #520 - Preliminary support for PCOV #667
- Adding Line Numbers To Mutator Ignore List #663
- Family bc*-functions mutators (bcmath support) #658
- Family mb_*-functions mutators #654
- Add a new unwrap mutator: ucwords #644
- New @unwrap mutator: lcfirst() #642
- Provide compact output for CI environments #613
- add unwrap array_pad mutator #680
- add unwrap array_intersect_assoc mutator #679
- #597 Array item removal mutator #649
- Enhancement: Implement UnwrapTrim mutator #638
- Enhancement: Implement UnwrapArrayUintersect mutator #637
- Enhancement: Implement UnwrapArrayUintersectUassoc mutator #633
- Enhancement: Implement UnwrapArrayUintersectAssoc mutator #628
- Enhancement: Implement UnwrapArrayUdiff mutator #624
- Mutator: AssignCoalesce. Upgrade PHPParser to 4.2.1 #641
- Mutator: UnwrapUcFirst (unwrap the first argument of ucfirst() function) #635
Fixed:
- Multi line arrays are not properly handled by code coverage #652
- Error when parsing method that creates anonymous class #616
- Infection gets stuck in the first execution after configuration file is created #576
- Wrong constructor ownership when returning an anonymous class #682
- Do not mutate * to / and vice versa if one of the operands is numeric ±1.0 #673
Changed:
- Stop traversal of interfaces and abstract methods #656
- Add a few more count esque functions to not decrement against #640
- Enhancement: Normalize composer.json #629
- Upgrade PHPUnit from ^6.5 to ^7.5 and all dependencies, including root differ #627
- Test against php 7.4 #625
0.12.0 (2019-01-24)
BC Breaks:
- Disabling mutating "true" -> "false" in TrueValue mutator for in_array/array_search #599
Added:
- Allow settings for Mutators #206
- Enhancement: Implement UnwrapArrayUdiffAssoc mutator #614
- Enhancement: Implement UnwrapArraySplice mutator #605
- Enhancement: Implement UnwrapArraySlice mutator #598
- Enhancement: Implement UnwrapArrayMergeRecursive mutator #594
- Enhancement: Implement UnwrapArrayIntersectUkey mutator #593
- Enhancement: Implement UnwrapArrayIntersectUassoc mutator #591
- Enhancement: Implement UnwrapArrayColumn mutator #590
- Enhancement: Implement UnwrapArrayIntersectKey mutator #584
- Enhancement: Implement UnwrapArrayDiffUkey mutator #583
Fixed:
- Schema does not include initialTestsPhpOptions #606
- Space in PHP interpreter path breaks Infection #600
- Starting infection via phing differs from commandline #592
- symfony/phpunit-bridge isn't supported #588
- Symfony flex should correctly detect phpunit executable #493
Changed:
- Running command with
--only-covered
should add in log only covered code. #581 - Add a test to check Infection works with PSR-0 compliant autoloader #579
- Update gitattributes file #532
0.11.0 (2018-11-11)
BC Breaks:
- Add counterparts to identical mutator and remove them from default #391 (BackEndTea)
Added:
- Add json-schema validation for
infection.json.dist
config file #451 (sidz) - Run project's tests in a random order for InitialTestRun process #519 (borNfreee)
- Validate phpunit.xml #487 (borNfreee)
- @codeCoverageIgnore annotations support #491 (borNfreee)
- [RFC] Yield mutations #450 (borNfreee)
- [Feature] Round Family #449 (deleugpn)
- Add counterparts to identical mutator and remove them from default #391 (BackEndTea)
- Adding Additional CLI Settings To Config #463 (Fenikkusu)
- [Mutator] Implement UnwrapArrayCombine mutator #550 (localheinz)
- [Mutator] Use default rules of ordered_class_elements fixer #530 (localheinz)
- [Mutator] Implement UnwrapArrayFlip mutator #529 (localheinz)
- [Mutator] Implement UnwrapArrayReverse mutator #527 (localheinz)
- [Mutator] Enable no_superfluous_phpdoc_tags fixer #525 (localheinz)
- [Mutator] Implement UnwrapStrRepeat mutator #539 (localheinz)
- [Mutator] Fail with a better assertion message #538 (localheinz)
- [Mutator] Implement UnwrapArrayReplace mutator #536 (localheinz)
- [Mutator] Implement UnwrapStrToLower mutator #534 (localheinz)
- [Mutator] Implement UnwrapArrayReduce mutator #533 (localheinz)
- [Mutator] Implement UnwrapArrayReplaceRecursive mutator #545 (localheinz)
- [Mutator] Implement UnwrapArrayDiff mutator #544 (localheinz)
- [Mutator] Implement UnwrapArrayIntersect mutator #543 (localheinz)
- [Mutator] Implement UnwrapArrayMerge mutator #542 (localheinz)
- [Mutator] Implement UnwrapArrayChunk mutator #558 (localheinz)
- [Mutator] Implement UnwrapArrayUnique mutator #556 (localheinz)
- [Mutator] Implement UnwrapArrayKeys mutator #555 (localheinz)
- [Mutator] Implement UnwrapArrayValues mutator #554 (localheinz)
- [Mutator] Unwrap all available arguments to array_map() #553 (localheinz)
- [Mutator] Created new UnwrapStrToUpper mutator #559 (zf2timo)
Fixed:
- Do not require dev packages on Deploy stage #445 (borNfreee)
- Batch file invoked with php - breaks test framework version #469
- Validate that infection.json contains valid (writable) file paths for loggers #458 (borNfreee)
- Fix .bat files being invoked with php #470 (johnstevenson)
- Exclude --testsuite from PhpUnit mutant options, but allow for initial process #480
- Extend TestFrameworkExtraOptions to cover more complex usages of options #483 (tomtomau)
- Restrict installation with broken versions of symfony/console #523 (sanmai)
- Fix Decrement integer #485 (BackEndTea)
- Update ProtectedVisibility/PublicVisibility to guard against missing reflection #502 (sanmai)
- Update TestFrameworkFinder to always look for a .bat first. #506 (sanmai)
- TestFrameworkFinderTest fails to run on Mac OS X #504
- PublicVisibility mutator failing due to missing reflection #501
- --initial-tests-php-options ignored on Windows #471
- Do not mutate the code inside plain functions #466
- Infection does not fail gracefully on an invalid phpunit.xml #409
- Do not mutate code that is ignored from code coverage #407
- Fix: Keep mutators in mutator profiles sorted by name #541 (localheinz)
Changed:
- Rename infection-log.txt -> infection.log #454 (borNfreee)
- Improve compatibility with framework based applications #440 (patrickfunke)
- Add some breathing space around our logo #509 (sanmai)
- Explicitly add the default profile to the list of mutators #507 (sanmai)
- Do not travers plain functions unless they are in the method or closures #508 (borNfreee)
- Do not mutate interfaces #548 (sanmai)
- Include the complete license in headers #528 (sanmai)
0.10.0 (2018-08-11)
BC Breaks:
- Drop PHP 7.0 support #414
Added:
- Function and method removal mutators #418 (BackEndTea)
- PregMatchMatches mutator #383 (BackEndTea)
- Add infection to PHIVE (PHAR Installation and Verification Environment) #134
- Show time and memory info to the console output #390 (borNfreee)
- Add GPG signing for PHAR #436 (borNfreee)
- Sort logs #424 (BackEndTea)
- Explicitly require the DOM extension #411 (BackEndTea)
Fixed:
- 100% MSI reported even if a small number of uncovered mutations is found #426
- Round MSI down to the smallest integer, instead of nearest #431 (sanmai)
- Space in directory path breaks Infection #413
- BadgeLogger now reports exact errors #405 (sanmai)
- Quiet mode is as quiet as one can expect it to be #403
- Fix exclude to excludes for generated config file #423 (BackEndTea)
- Brew installation isn't supported anymore or docs aren't updated #416
0.9.0 (2018-07-02)
BC Breaks:
- Use textual version of log verbosity \265infection#265)
Added:
- Feature: Profiles #220
- Mutation badge #207
- Feature:disable certain mutators #177
- Add reflection classes to mutators. Do no mutate public method visibility if parent has the same one #67
- [Mutator] IdenticalEqual and NotIdenticalNotEqual mutators #298
- [Mutator] Remove type cast operators #297
- [Mutator] Add mutator that removes finally {} block #261
- [Mutator] Yield Mutator #242
- [Mutator] ArrayItem Mutator #240
- [Mutator] Add a For Loop mutator & test #230
- [Mutator] Add Assignment Equal Mutator #229
- [Mutator] Add Assignment Mutator #228
- [Mutator] Add the first regex mutator #333 (BackEndTea)
- Use PHP-Parser 4 to preserve mutated code formatting #55
- [epic] Scope and deploy signed PHAR #338
- Add a per mutator logging option #346 (BackEndTea)
- Update travis config to deploy PHAR and pubkey on releases #353 (borNfreee)
Changed:
- Xdebug/ phpdbg check should be later in the infection process #325
- Stop mutation of abstract methods default parameters #361 (BackEndTea)
- Add a test to check whether classes are unit tested #360 (BackEndTea)
- Clean up after Mutation testing has been finished #357 (sidz)
- Simplify the EventDispatcher #348 (BackEndTea)
Fixed:
- infection ignores phpunit.xml bootstrap file #320
- False positive when calculation is in multiple lines #366
- Allow Absolute Path to phpunit.xml(.dist) #387 (adeptofvoltron)
- Account for statements spanning multiple lines #375 (sanmai)
- Look for .bat on all platforms #374 (sanmai)
- False positive: count(-1) (decrement integer mutator) #364
- Infection works incorrectly on Windows #351
- Weird behaviour in Docker container #332
- Initial test suite may fail to deliver coverage, e.g. under Docker #306
- Infection infects /tmp #356
- Infection does not correctly detect whether phpunit is php-executable #300
- Infection can't report on effectiveness of mutators #271
- Do not decrement integer 0 when it is being compared with the result of count() #365 (borNfreee)
0.8.0 (2018-02-27)
BC Breaks:
- Make paths in config file relative to config file #165 (BackEndTea)
- Remove
exclude
option from config #155 (sidz)
Implemented enhancements:
- Implement integer increment and decrement mutators #152 (localheinz)
- Implement Throw mutator #164 (BackEndTea)
- Use existing coverage reports #176 (borNfreee)
- Do not require Xdebug/phpdbg when existing coverage is provided #183 (sidz)
- Add an option to pass additional parameters to the PHP binary #185 (sidz)
- Allow relative path for
tmpDir
config setting. #151 (borNfreee) - Allow coverage of function signatures of traits #191 (BackEndTea)
Performance:
- Fix performance issue in SourceFilesFinder #186 (borNfreee)
- Reuse created mutant files to avoid traversing and pretty printing #184 (borNfreee)
Fixed bugs:
- Windows can't open this file when composer.phar is found #196
- Infection ignores coverage on trait(s) #189
- Existing coverage: "cannot load zend opcache" #182
- Phpunit "excludes" are not properly parsed #167
- Allow coverage of function signatures of traits #191 (BackEndTea)
- Fix: Don't mutate abstract methods #169 (BackEndTea)
- Don't try to expand directories with
\*
and\*\*
(glob pattern) #171 (sidz)
0.7.1 (2018-02-02)
Deprecated:
exclude
option ininfection.json
is Deprecated! and will be removed in0.8.0
. Useexcludes
instead
Implemented enhancements:
- PHPUnit ^7.0 support
- Remove tests/test folders when infection is run for root directory. W… #117 (borNfreee)
- Config setting for temp files #140 (sidz)
- Make Humbug's config to be compatible with Infection #120 (sidz)
- added new types of logs (debug, summary) #135 (BackEndTea)
Fixed bugs:
- PHP DOM Extension not working when explicitly enabled twice #125
- Infection not working if using custom printer #108
- Infection not working with phpdbg #106
- Startup problem #104
- Default values of functions not being found by coverage #101
- disable colors options #99
- Mutations not working well with function_exists #97
- Not covered mutant with
switch(true) -> switch(false)
mutation #34 - Fix: mutate methods but not functions #113 (BackEndTea)
Merged pull requests:
- Feature: e2e tests #135 (BackEndTea)
- Enhancement: Keep packages sorted #149 (localheinz)
- Enhancement: Allow to install sebastian/diff:^3.0 #148 (localheinz)
- Rework InfectionApplication class and remove 'application' service #146 (sidz)
- Skip XdebugHandlerTest when infection is running via phpdbg #145 (sidz)
- Fix: Disable xdebug before composer analyze on travis #136 (BackEndTea)
- Fix: Use actual name #133 (localheinz)
- Update IOException #132 (BackEndTea)
- Update symfony/process as it has an issue which introduced by 3.4.2 #131 (sidz)
- Give higher priority to custom config path #130 (BackEndTea)
- Ignore fixtures from cs fixer #128 (BackEndTea)
- Add tests #124 (BackEndTea)
- Fix: Change is function signature check #123 (BackEndTea)
- Add header comment to php-cs fixer #119 (BackEndTea)
- Move Files folder into the Fixtures folder #118 (BackEndTea)
- fix small typos #116 (teiling88)
- Update gitattributes #112 (BackEndTea)
- Fix: remove printer attributes from phpunit #110 (BackEndTea)
- Fix phpdbg issue caused by xdebug disabling feature #107 (sidz)
- Parse only PHP files by default #105 (borNfreee)
- Add credits #102 (theofidry)
- Fix issue with --no-ansi flag #100 (sidz)
- PHPSPEC - If you had a custom bootstrap file in the phpspec.yml it would generate the autoload without the semicolon. #98 (AliceIW)
0.7.0 (2017-12-22)
Performance:
- Disable xdebug for all php processes except code coverage generator #85 (sidz)
- Parse each source file just 1 time, cache original file AST #95 (borNfreee)
Merged pull requests:
Fixed bugs:
Closed issues:
- Add comma separated files filter #84 (Landerstraeten)
- Is Infection compatible with PHPUnit 5.x ? #83
- Feature Request: Add line numbers to diffs on Escaped mutants #72
- [WIP] Optimize PHP files parsing #86
0.6.2 (2017-11-18)
Implemented enhancements:
Fixed bugs:
Closed issues:
- Uncovered Mutations not logged? #78
Merged pull requests:
0.6.1 (2017-11-18)
Performance:
- Reuse Parser, Lexer, PrettyPrinter #76 (borNfreee)
- Skip
composer config bin-dir
check if custom path exists #66 (sidz)
Developer Experience (DX):
- Display test framework output when initial tests fail #65 (borNfreee)
- Show fatal errors in the console and file logs #64 (borNfreee)
- Add Log verbosity #56 (sidz)
- Infection can be installed via Homebrew on MacOS
Fixed bugs:
- Warning with empty PHPUnit bootstrap #74
- PublicVisibility mutator seen as escaped mutant for a class implementing an interface #60
- Source files outside the src folder always skipped #57
- Show correct type of error message for CI flags #68 (dmecke)
Closed issues:
- Tests do not pass. Error code 2. "Misuse of shell builtins". STDERR #61
- Hide killed mutants in output log? #54
- Tests do not pass. Error code 255. "Unknown error". STDERR: #43
- Coverage data missing #30
Other merged pull requests:
- PHPUnit bootstrap attribute fix #77 (borNfreee)
- Improve coding style #73 (Landerstraeten)
- Small code cleanup changes #70 (Landerstraeten)
- Add PHP 7.2 to Travis and AppVeyor matrix #69 (borNfreee)
- Mark test with Fatal Error as failed and such Mutant as killed. #62 (borNfreee)
- Fix PHPSpec initial yaml config generate logic #59 (borNfreee)
- Fix hardcoded framework name #58 (Landerstraeten)
0.6.0 (2017-10-09)
Closed issues:
- [New Mutator] Swap arguments in the Spaceship operator #47
Merged pull requests:
- Upgrade Mockery to ^1.0 #50 (borNfreee)
- Compatibility with PHPUnit 6.4 #49 (morozov)
- Add composer script for static analyzing tools #46 (borNfreee)
- Fix performance bottleneck by introducing a simple instance-level object cache #44 (borNfreee)
- Zero iteration mutator #52 (sidz)
- Add Break-Continue mutators #51 (sidz)
- Swap arguments on spaceship operator #48 (marcosh)
0.5.3 (2017-09-15)
Implemented enhancements:
- Display PHPUnit/PHPSpec version under what tests are run #31
- Provide meaningful feedback on failure #29
- Add exceptions handling with printing trace for verbose level. #39 (borNfreee)
Closed issues:
Merged pull requests:
- remove timeout from initial test run #41 (JanPietrzyk)
- Interface mutations fix #32 (oxidmod)
- Add option to pass test framework extra options #42 (borNfreee)
- Add Filesystem and add Directory Check for logs path. #40 (sidz)
- Support phpdbg #37 (keradus)
- Add test framework version to console #33 (borNfreee)
0.5.2 (2017-09-02)
Fixed bugs:
- SourceDirGuesser failure #23
Closed issues:
Merged pull requests:
- Add ISSUE_TEMPLATE.md to get all required info from users #26 (borNfreee)
- Added option '-c|--configuration' for custom configuration file path. #28 (corpsee)
- Fix autoload section from composer.json and allow to use multiple paths #25 (sidz)
- Fixed bootstrap.php for case with install by Composer as dependency and run from vendor/bin #22 (corpsee)
0.5.1 (2017-08-20)
Merged pull requests:
- Auto add coverage filter whitelist for phpunit.xml.dist to make it possible to analyze coverage #20 (borNfreee)
- Smart
ReturnValue
mutators #19 (borNfreee)
0.5.0 (2017-08-08)
Merged pull requests:
- Add whitelist for executed mutators. New option --mutators=X,Yy,Zzz #18 (borNfreee)
- Public->protected, protected->private Visibility Mutators #17 (borNfreee)
0.4.0 (2017-07-27)
Closed issues:
- Location of test framework #4
Merged pull requests:
- Add --min-msi and --min-covered-msi options to control MSI in CI and fail builds #16 (borNfreee)
- Allow to exclude files, not only dirs in the
infection.json
config file #15 (borNfreee) - Fix issues reported by PHPStan. Run it for each build #14 (borNfreee)
- Add php-cs-fixer config, apply fixes #13 (borNfreee)
- Add arithmetic tests #12 (borNfreee)
- Fix build on Windows. Integrate Appveyor #10 (borNfreee)
0.3.0 (2017-07-14)
Fixed bugs:
Merged pull requests:
- Add possibility to set custom PHPUnit executable path #9 (borNfreee)
- Pass timeout setting to Initial Process builder to control test suite #8 (borNfreee)
- Handle situation when PHPUnit <testsuite /> node is placed directly inside the root node #7 (borNfreee)
0.2.1 (2017-07-11)
Merged pull requests:
0.2.0 (2017-07-08)
Closed issues:
- Phar distribution #1
Merged pull requests:
0.1.0 (2017-07-01)
* This Change Log was automatically generated by github_changelog_generator