Giter Site home page Giter Site logo

Comments (1)

maks-rafalko avatar maks-rafalko commented on June 2, 2024 1

Hello,

unfortunately, there is no way to achieve this with the current implementation. Look at this code:

'git',
'diff',
$referenceCommit,
'--diff-filter',
$gitDiffFilter,
'--name-only',
'--',
],
$sourceDirectories

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.