Judy requires Java 1.8 to be run.
judy-all
- a single executable file with all dependencies included in itjudy-cli-all-bin
- the judy-all
with startup scriptsjudy-cli-bin
- the only judy-cli
plugin with startup scripts without other plugins for more comprehensive customizationjudy-*
- a judy single plugin file*-repacked
- an external dependency repacked into pl.edu.pwr.judy
namespaceThe main goal of the project is to provide an extensible platform to conduct research on the mutation testing. Judy 2 greatly fulfilled these intentions but by the time she started being cluttered with the added functionality. Further development and feature introduction have stalled.
Next edition of the tool evolves into modular system consisting of highly cohesive sub-projects - plugins. Each plugin has only one single responsibility to cover without consciousness of other, often unrelated, functionalities. The whole application is glued together by plugin autoload, dependency injection and it is event driven. These properties makes the Judy’s core small, simple and ready to be extended in easy way. You can read more about technical details in the Architecture overview.
Introduced design required a few tradeoffs. Missing features are going to be backported in next milestones.
Judy detects classes, tests and libraries by scanning file’s content. Classpaths are automatically calculated from found files.
Judy allows to choose a file format of a result between xml
and json
. By default json
is used.
All external dependencies, except junit
, are repacked into pl.edu.pwr.judy
namespace in order to resolve library clashes with a software under test and its own dependencies.
The tool uses the Gradle build system to manage sub-projects, automate dependency management and library repackaging, functional testing and publishing.
The ability to run tests simultaneously in different threads in the single JVM instance was removed. A new model, based on standalone workers, is going to be introduced in the future.
The ability to choose and run HOM strategies in the core Judy distribution was removed. Separate plugins for different HOM strategies are going to be backported and released in the future.
The ability to run mutation testing in cluster was removed. This is going to be superseded by the new multithreading model in the future.