Thanks to visit codestin.com
Credit goes to github.com

Skip to content

gliptak/JAllele

JAllele

ci codecov GPL v3

JAllele is a mutation testing tool for Java. By design, all mutants generated are valid and it aspires to avoid equivalent mutants.

Documentation

For full documentation, usage examples, and development information, see docs/.

Quick Start

Build the project:

$ ./gradlew build

Run JUnit sample:

$ java -Djdk.attach.allowAttachSelf=true -jar jallele-cmdline/build/libs/jallele-cmdline-test-*.jar --junit --count 10 \
--source-classes com.github.gliptak.jallele.SimpleClass --test-classes com.github.gliptak.jallele.SimpleClassJUnitTest

Run with a specific seed for reproducible mutations:

$ java -Djdk.attach.allowAttachSelf=true -jar jallele-cmdline/build/libs/jallele-cmdline-test-*.jar --junit --count 10 \
--seed 12345 --source-classes com.github.gliptak.jallele.SimpleClass --test-classes com.github.gliptak.jallele.SimpleClassJUnitTest

Run with classpath discovery:

$ java -Djdk.attach.allowAttachSelf=true -jar jallele-cmdline/build/libs/jallele-cmdline-test-*.jar --junit --count 10 \
--source-path target/classes --source-patterns 'com.example.**' \
--test-path target/test-classes --test-patterns 'com.example.**Test'

For more examples and detailed usage, see CLI Examples.

Command Line Interface

JAllele supports two formats for specifying classes to test:

Explicit Class Names

Directly specify class names:

--source-classes com.example.MyClass --test-classes com.example.MyClassTest

Classpath + Patterns

Specify classpaths (directories or JAR files) and patterns to match classes:

--source-path target/classes --source-patterns 'com.example.**' \
--test-path target/test-classes --test-patterns 'com.example.**Test'

Pattern Syntax

  • * - Matches any characters within a single package segment
  • ** - Matches any number of package segments (including zero)

Examples:

  • com.example.** - All classes in com.example and subpackages
  • **Test - All classes ending with "Test"
  • com.example.*Utils - Utility classes in com.example package only

Note: JUnit requires test classes to be public. Some projects (like Apache Commons Lang) use package-private test classes that cannot be run through JAllele's pattern-based discovery. In such cases, use explicit class names with --source-classes and --test-classes, or test your own projects where test classes are public.

Multi-Module Projects

For projects with multiple modules, specify multiple paths:

--source-path module1/target/classes module2/target/classes module3/target/classes \
--test-path module1/target/test-classes module2/target/test-classes module3/target/test-classes

See CLI Examples for comprehensive examples including Apache Commons Lang and Google Guava.

Contributing

Contributions, issues, pull requests are welcome.

About

JAllele - Java mutation testing

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •