Comments (1)
Hello,
unfortunately, there is no way to achieve this with the current implementation. Look at this code:
infection/src/Logger/GitHub/GitDiffFileProvider.php
Lines 69 to 77 in 3e0387b
On line 77, we pass an array of source directories from infection.json5
, in which we find changes with git diff
. If we want to also check a change in a test folder, then we need to pass it as well.
However, we can't just add tests
folder to infection.json5
under source.directories
, as it will break Infection - it will start mutating tests...
I see no other way than creating some new option to pass tests
there.
UPD: even if we pass tests
on the line 77 above, it won't work, because Infection mutates only files from source.directories
config, so tests files will be skipped.
In your case, there should be some logic that understand that tests/Unit/Service/FooTest.php
corresponds to the source file src/Service/Foo.php
, so the mentioned method should return src/Service/Foo.php
, not tests/Unit/Service/FooTest.php
.
Thus, it looks like a new feature with the logic of determining a source file by looking at the test file. This is definitely not supported.
You can however achieve this by yourself (outside of Infection).
git diff .... # get all files from the diff
# check if tests files are changed
# product a list of source files from the list of tests files
# pass them to `--filter` option to Infection
infection --filter=src/Service/Foo.php
bash examples can be found here https://infection.github.io/guide/how-to.html#By-using-filter-option-for-the-old-Infection-versions
from infection.
Related Issues (20)
- All mutants escapes when using `function-mocking` and `patchwork` HOT 10
- GitHub annotations without Actions HOT 2
- --min-covered-msi=100 vs 0 coverage breaks CI integration HOT 6
- When a test appears in multiple suites, Infection errors out HOT 4
- PublicVisibility method issue in Traits that are used in classes with a matching Interface method. HOT 2
- Investigate is it possible to check duplicates of generated mutators (physical and logical) HOT 5
- Infection needs to be adapted for `phpunit.xml` schema change in PHPUnit 10.1 HOT 1
- No GPG Signature for Phive. HOT 2
- Error infection phpunit 10.1 in Schema PHPUNIT. HOT 1
- [False-positive] Mutations on PHP Attributes are not killed HOT 1
- Do not mutate `instanceof` in `assert()` HOT 7
- Attributes on parameters of method signature are not detected as part of method signature HOT 7
- Implement real-time reporting for Infection
- Infection can't run custom Test Framework extensions because TestFrameworkTypes is hardcoded
- Allow Infection to run without a pre-existing Test Framework configuration file
- Implement always `true` or always `false` `if` and `elseif` conditions HOT 8
- Error "Expected a value identical to 1. Got: 62" when using PHPUnit 10.2 HOT 10
- Syntax error: infection drops required parentheses HOT 1
- Session Interference Issue with Magento 1.9 on PHP 8.0.29 using Infection 0.26.19 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from infection.