As a reviewer, it's important you feel comfortable with the code quality in a PR.
Mutation testing is a powerful way to gain confidence in the tests, but it can be difficult, time-consuming or even inappropriate to seek high-levels mutation coverage in some cases.
PR Landmines allow reviewers to strategically add mutations to the code of a PR and verify the tests will catch the issue. All while using the existing Azure DevOps pull request interface to keep things in-line and straight-forward.
Why would I use this?
Takes seconds to implement and is language agnostic
Great for applications that have little-to-no mutation coverage
Perfect for applications that get their coverage from slower-running integration tests rather than unit tests
A powerful conversation starter to educate others on the benefits of testing in real-time
When would I not use this?
The solution isn't recommended for applications that have lots of unit tests and good mutation coverage.
Re-run the pull request job and the landmine comment should be annotated with the success or failure of the bomb defusal.
Task Options
Property
Required
Default Value
Description
accessToken
Yes
$(System.AccessToken)
The access token used to retrieve and update comments on the pull requests
testCommand
Yes
The command that is executed after each landmine is added. Ideally, this includes other static validation such as linting.
testCommandDirectory
No
$(System.DefaultWorkingDirectory)
The directory to apply the test command. Useful if your tests are orchestrated in a different directory than root.
testCommandTimeout
No
60000
The number of milliseconds to wait before bailing on the test command. Needs to be sufficiently high to run the test suite but low enough to catch infinite loops or runaway threads created by the mutation.
autoResolve
No
true
If the bomb is defused successfully, the original pull request comment will be auto-resolved.
Contribution
Found an issue or see something cool that's missing? Pull requests and issues are warmly accepted!