An open API service indexing awesome lists of open source software.

https://github.com/rife2/bld-pitest

PIT Mutation Testing and Coverage for bld
https://github.com/rife2/bld-pitest

bld build build-system build-tool build-tool-plugin coverage extension mutation-testing pit pitest test testing

Last synced: about 1 month ago
JSON representation

PIT Mutation Testing and Coverage for bld

Awesome Lists containing this project

README

          

# [PIT Mutation Testing](https://pitest.org/) Extension for [bld](https://rife2.com/bld)

[![License](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Java](https://img.shields.io/badge/java-17%2B-blue)](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)
[![bld](https://img.shields.io/badge/2.3.0-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld)
[![Release](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Frepo.rife2.com%2Freleases%2Fcom%2Fuwyn%2Frife2%2Fbld-pitest%2Fmaven-metadata.xml&color=blue)](https://repo.rife2.com/#/releases/com/uwyn/rife2/bld-pitest)
[![Snapshot](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Frepo.rife2.com%2Fsnapshots%2Fcom%2Fuwyn%2Frife2%2Fbld-pitest%2Fmaven-metadata.xml&label=snapshot)](https://repo.rife2.com/#/snapshots/com/uwyn/rife2/bld-pitest)
[![GitHub CI](https://github.com/rife2/bld-pitest/actions/workflows/bld.yml/badge.svg)](https://github.com/rife2/bld-pitest/actions/workflows/bld.yml)

To install the latest version, add the following to the
`lib/bld/bld-wrapper.properties` file:

```properties
bld.extension-pitest=com.uwyn.rife2:bld-pitest
```

For more information, please refer to the
[extensions](https://github.com/rife2/bld/wiki/Extensions) documentation.

## Mutation Testing with PIT

To run mutation tests and coverage, add the following to your build file:

```java
@BuildCommand(summary = "Run PIT mutation tests")
public void pit() throws Exception {
new PitestOperation()
.fromProject(this)
.reportDir(Path.of("reports", "mutations"))
.targetClasses(pkg + ".*")
.targetTests(pkg + ".*")
.verbose(true)
.execute();
}
```

```console
./bld compile pit

```

- [View Examples Project](https://github.com/rife2/bld-pitest/blob/master/examples/src/bld/java/com/example/)

Please check the
[PitestOperation documentation](https://rife2.github.io/bld-pitest/rife/bld/extension/PitestOperation.html#method-summary)
for all available configuration options.

## Pitest (PIT) Dependency

Don't forget to add the Pitest `test` dependencies to your build file, as the
are not provided by the extension. For example:

```java
repositories = List.of(MAVEN_CENTRAL);
scope(test)
.include(dependency("org.pitest", "pitest", version(1, 23, 0)))
.include(dependency("org.pitest", "pitest-command-line", version(1, 23, 0)))
.include(dependency("org.pitest", "pitest-junit5-plugin", version(1, 2, 3)))
.include(dependency("org.pitest", "pitest-testng-plugin", version(1, 0, 0)));
```