The Test Feedback Problem
If you write Java with Maven, you know the pain: change a line → mvn test → wait → read results → repeat. Each cycle costs 20-60 seconds depending on project size.
The JavaScript world solved this years ago with Vitest and Jest watch mode. Rust has cargo watch. Python has pytest-watch. Java Maven developers? Still waiting.
The Contenders
| test-watch-maven-plugin | Infinitest | Manual mvn test
|
|
|---|---|---|---|
| Approach | CLI watch mode | IDE plugin | Manual command |
| Setup time | ~2 min | ~5 min | None |
| Feedback speed | <5 sec (smart) | <3 sec (on save) | 20-60 sec |
| IDE required? | No — any terminal | Eclipse/IntelliJ only | No |
| Smart selection | ✅ Pattern-based | ✅ | ❌ |
| Parallel execution | ✅ | ❌ | ✅ |
| Maven-native | ✅ | ❌ | ✅ |
| License | MIT | MIT | Built-in |
Deep Dive
Manual mvn test — The Baseline
Pros: No setup. Works everywhere. Full control.
Cons: Slow. Runs everything. Manual trigger. Context switching.
Best for: Full suite before commit. CI pipelines.
Infinitest — The IDE-Integrated Approach
Continuous testing plugin for Eclipse and IntelliJ. Detects saves and runs affected tests automatically.
Pros: Fast. Hands-off. Good smart selection. Well-established.
Cons: IDE-locked. No VS Code or Neovim support. No parallel execution.
Best for: IntelliJ/Eclipse users wanting zero-config continuous testing.
test-watch-maven-plugin — The CLI Watch Mode
<plugin>
<groupId>io.github.albilu</groupId>
<artifactId>test-watch-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<testPattern>**/*Test.java</testPattern>
<parallel>true</parallel>
<smartSelection>true</smartSelection>
</configuration>
</plugin>
mvn test-watch-maven-plugin:test
Pros: IDE-agnostic. Maven-native. Smart selection. Parallel execution. Clean output. MIT licensed.
Cons: Newer project. Manual start required. Single-module focus currently.
Best for: Developers who want watch-mode feedback without IDE lock-in. Teams with diverse editors.
Side-by-Side: Same Scenario
Refactoring UserService.java in a Spring Boot project with 150 test classes.
| Approach | What Happens | Time |
|---|---|---|
| Manual | 150 tests run | ~45s |
| Infinitest | 3 affected tests auto-run | ~3s |
| test-watch-maven-plugin | 3 affected tests in parallel | ~2s |
Which Should You Choose?
Manual mvn test: Before commits, CI pipelines, full suite verification.
Infinitest: IntelliJ/Eclipse-only shops wanting zero-config continuous testing.
test-watch-maven-plugin: VS Code/Neovim/terminal users. Teams with diverse editors. Anyone missing Vitest-style feedback.
The Bottom Line
You don't have to pick one. Use test-watch-maven-plugin during development for instant feedback, then mvn test before commits. Speed of watch mode + safety of full suite.
The plugin is MIT-licensed, on Maven Central, and awaits your feedback on GitHub.
What's your current test feedback workflow? Still running mvn test manually?
Top comments (0)