Julia package template with revise-test loop for fast iterative development.
Tests are organized in modules (one per test suite) and loaded into your LOAD_PATH at the start of runtests.jl. Each test module must have a run() function.
Automatically runs tests when code changes—no Julia restart needed:
- Edit code → 2. Revise.jl detects changes → 3. Tests run → 4. Continue coding
Start the loop:
./runtests.sh # Output to terminal
./runtests.sh test/output.log # Redirect to test/output.log (truncated each run)Configure in test/runtests.jl:
# Step 2: Import your package
using EmptyPackage
# Step 3: Import test modules
using EmptyPackageUnitTests
# Step 4: List modules to track for changes
MODULES_TO_TRACK = [EmptyPackage]
# Step 5: List test modules to track and run
TEST_MODULES_TO_TRACK_AND_RUN = [EmptyPackageUnitTests]Each test module needs a run() function that executes all tests in that module.
Run tests once (no revise loop):
] test # Terminal output
] test output.log # File outputThis package uses an automatic test-rerun workflow with two interaction modes:
Use slash commands for on-demand control:
/test-loop- Start background test loop, monitor output/check-tests- Check latest test results fromtest/output.log
Use the julia-test-monitor agent for continuous monitoring:
- Automatically watches test output
- Proactively reports failures
- Analyzes errors and suggests fixes
- Ideal when you want to focus on coding without manually checking tests
Expected Behavior:
- ✅ Regular test failures: Continue watching, fix and save to retry
⚠️ World age errors: Auto-restart Julia (wait ~5 seconds)- ❌ Parse errors: Exit loop, manual restart required after fix
Workflow Examples:
Manual approach:
/test-loop- Start background test loop- Make code changes and save
/check-tests- Check results on demand
Autonomous approach:
- Start
julia-test-monitoragent - Make code changes and save
- Agent reports failures automatically