Skip to content

Commit

Permalink
Initial commit for pitest mutation testing
Browse files Browse the repository at this point in the history
Signed-off-by: Sirisha Pratha <sirisha.pratha@bnymellon.com>
  • Loading branch information
prathasirisha committed May 27, 2020
1 parent 140ca1a commit 5e196f3
Show file tree
Hide file tree
Showing 2 changed files with 124 additions and 0 deletions.
49 changes: 49 additions & 0 deletions .github/workflows/mutation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven

name: Mutation tests

on:
schedule:
- cron: '0 13 * * 5'

jobs:
applications:
name: Mutation Test ${{ matrix.java-version }}
strategy:
matrix:
os: [ubuntu-latest]
java-version: [8]

runs-on: ${{ matrix.os }}

env:
JAVA_VERSION: ${{ matrix.java-version }}

steps:
- name: Git Checkout
uses: actions/checkout@v2
- name: Set JDK ${{ matrix.java-version }}
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java-version }}
- name: Enable Maven Cache
uses: actions/cache@v1
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Maven Install
run: mvn clean install -DskipTests=true
env:
MAVEN_OPTS: "-Xmx1g"
- name: Mutation Test
run: mvn eu.stamp-project:pitmp-maven-plugin:run -DwithHistory -DtimeoutConstant=8000
env:
MAVEN_OPTS: "-Xmx1g"
- name: Archive pitest reports
uses: actions/upload-artifact@v1
with:
name: pit-reports
path: unit-tests/target/pit-reports
75 changes: 75 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,81 @@

<pluginManagement>
<plugins>
<plugin>
<groupId>eu.stamp-project</groupId>
<artifactId>pitmp-maven-plugin</artifactId>
<version>1.3.7</version>
<configuration>
<verbose>false</verbose>
<timestampedReports>false</timestampedReports>
<targetModules>
<param>unit-tests</param>
</targetModules>
<skippedModules>
<param>eclipse-collections-code-generator</param>
<param>eclipse-collections-code-generator-maven-plugin</param>
<param>p2-feature</param>
<param>p2-repository</param>
<param>p2-repository</param>
</skippedModules>
<avoidCallsTo>
<avoidCallsTo>java.util.logging</avoidCallsTo>
<avoidCallsTo>org.apache.log4j</avoidCallsTo>
<avoidCallsTo>org.slf4j</avoidCallsTo>
<avoidCallsTo>org.apache.commons.logging</avoidCallsTo>
</avoidCallsTo>
<maxMutationsPerClass>1</maxMutationsPerClass>
<excludedClasses>
<param>org.eclipse.collections.impl.lazy.parallel*</param>
<param>org.eclipse.collections.impl.parallel*</param>
<param>org.eclipse.collections.impl.map.mutable.Concurrent*</param>
<param>org.eclipse.collections.impl.collector.Collectors2</param>
<param>java.util.stream.*</param>
<param>org.eclipse.collections.impl.*Char*</param>
<param>org.eclipse.collections.impl.*Float*</param>
<param>org.eclipse.collections.impl.*Long*</param>
<param>org.eclipse.collections.impl.*Double*</param>
<param>org.eclipse.collections.impl.*Byte*</param>
<param>org.eclipse.collections.impl.*Short*</param>
<param>org.eclipse.collections.impl.*Iterable*</param>
<param>org.eclipse.collections.impl.*Multimap*</param>
<param>org.eclipse.collections.impl.*Composite*</param>
<param>org.eclipse.collections.impl.*Interval*</param>
<param>org.eclipse.collections.impl.*Adapter*</param>
<param>org.eclipse.collections.impl.*Concurrent*</param>
<param>org.eclipse.collections.impl.*Parallel*</param>
<param>org.eclipse.collections.impl.*Synchronized*</param>
<param>org.eclipse.collections.impl.*Unmodifiable*</param>
<param>org.eclipse.collections.impl.*Immutable*</param>
<param>org.eclipse.collections.impl.*MultiReader*</param>
<param>org.eclipse.collections.impl.*FixedSize*</param>
<param>org.eclipse.collections.impl.*Collectors*</param>
</excludedClasses>
<excludedTestClasses>
<param>org.eclipse.collections.impl.lazy.parallel*</param>
<param>org.eclipse.collections.impl.parallel*</param>
<param>org.eclipse.collections.impl.*Char*</param>
<param>org.eclipse.collections.impl.*Float*</param>
<param>org.eclipse.collections.impl.*Long*</param>
<param>org.eclipse.collections.impl.*Double*</param>
<param>org.eclipse.collections.impl.*Byte*</param>
<param>org.eclipse.collections.impl.*Short*</param>
<param>org.eclipse.collections.impl.*Iterable*</param>
<param>org.eclipse.collections.impl.*Multimap*</param>
<param>org.eclipse.collections.impl.*Composite*</param>
<param>org.eclipse.collections.impl.*Interval*</param>
<param>org.eclipse.collections.impl.*Adapter*</param>
<param>org.eclipse.collections.impl.*Concurrent*</param>
<param>org.eclipse.collections.impl.*Parallel*</param>
<param>org.eclipse.collections.impl.*Synchronized*</param>
<param>org.eclipse.collections.impl.*Unmodifiable*</param>
<param>org.eclipse.collections.impl.*Immutable*</param>
<param>org.eclipse.collections.impl.*MultiReader*</param>
<param>org.eclipse.collections.impl.*FixedSize*</param>
<param>org.eclipse.collections.impl.*Collectors*</param>
</excludedTestClasses>
</configuration>
</plugin>

<plugin>
<artifactId>maven-assembly-plugin</artifactId>
Expand Down

1 comment on commit 5e196f3

@mannymonjarrezarias
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for this great collections for the Java platform!!!
It's so amazing and great!!!
Thanks for that great effor :D

Please sign in to comment.