Properties
This page provides a complete reference for all Verifyica configuration properties.
Property Format
Properties can be set in three ways:
1. Properties File
Create src/test/resources/verifyica.properties:
verifyica.engine.argument.parallelism=4
verifyica.engine.thread.type=virtual
2. System Properties
Pass as JVM arguments:
java -Dverifyica.engine.argument.parallelism=4 -jar test.jar
3. Environment Variables
Set environment variables (replace . with _ and uppercase):
export VERIFYICA_ENGINE_ARGUMENT_PARALLELISM=4
Parallelism Properties
verifyica.engine.class.parallelism
Controls how many test classes execute in parallel.
- Type: Integer
- Default:
1(sequential) - Example:
verifyica.engine.class.parallelism=4
Usage:
# Run 4 test classes in parallel
verifyica.engine.class.parallelism=4
verifyica.engine.argument.parallelism
Controls how many arguments within a class execute in parallel.
- Type: Integer
- Default:
1(sequential) - Example:
verifyica.engine.argument.parallelism=2
Note: This is a default value. Individual @ArgumentSupplier annotations can override this:
@Verifyica.ArgumentSupplier(parallelism = 4) // Overrides default
public static Collection<String> arguments() {
return generateArguments();
}
Usage:
# Run 2 arguments in parallel by default
verifyica.engine.argument.parallelism=2
Thread Configuration
verifyica.engine.thread.type
Configures the type of threads used for parallel execution.
- Type: String
- Values:
virtual,platform,platform-ephemeral - Default:
platform - Example:
verifyica.engine.thread.type=virtual
Options:
| Value | Description | Best For |
|---|---|---|
virtual | Java 21+ virtual threads | High concurrency, I/O-bound tests |
platform | Platform threads (traditional) | CPU-bound tests, Java 8+ |
platform-ephemeral | Platform threads that are discarded after use | Tests with thread-local state |
Usage:
# Use virtual threads (requires Java 21+)
verifyica.engine.thread.type=virtual
# Use platform threads (default)
verifyica.engine.thread.type=platform
# Use ephemeral platform threads
verifyica.engine.thread.type=platform-ephemeral
Virtual Threads Example:
Virtual threads are ideal for I/O-bound tests with high concurrency:
verifyica.engine.thread.type=virtual
verifyica.engine.argument.parallelism=100 # Can handle many more with virtual threads
State Machine Throttling
These properties control how fast state machines transition, useful for debugging.
verifyica.engine.class.state.machine.throttle
Throttle class-level state machine transitions.
- Type: Two integers (min, max) in milliseconds
- Default:
0, 1000 - Example:
verifyica.engine.class.state.machine.throttle=100, 500
verifyica.engine.argument.state.machine.throttle
Throttle argument-level state machine transitions.
- Type: Two integers (min, max) in milliseconds
- Default:
0, 1000 - Example:
verifyica.engine.argument.state.machine.throttle=100, 500
verifyica.engine.test.state.machine.throttle
Throttle test-level state machine transitions.
- Type: Two integers (min, max) in milliseconds
- Default:
0, 1000 - Example:
verifyica.engine.test.state.machine.throttle=100, 500
Usage:
Useful for debugging timing issues or simulating slow operations:
# Add random delay between 0-1000ms to state transitions
verifyica.engine.argument.state.machine.throttle=0, 1000
Logging Properties
verifyica.engine.logger.level
Sets the logging level for Verifyica’s internal logger.
- Type: String
- Values:
ALL,TRACE,DEBUG,INFO,WARN,ERROR,OFF - Default:
INFO - Example:
verifyica.engine.logger.level=DEBUG
Usage:
# Enable debug logging
verifyica.engine.logger.level=DEBUG
# Disable all logging
verifyica.engine.logger.level=OFF
# Only errors
verifyica.engine.logger.level=ERROR
verifyica.engine.logger.regex
Filter log messages by regex pattern.
- Type: Regular expression
- Default: (none - all messages logged)
- Example:
verifyica.engine.logger.regex=.*TestContainer.*
Usage:
# Only log messages containing "TestContainer"
verifyica.engine.logger.regex=.*TestContainer.*
# Only log messages from specific package
verifyica.engine.logger.regex=com\\.example\\.tests\\..*
Stack Trace Configuration
verifyica.engine.prune.stacktraces
Controls whether stack traces are pruned to remove framework internals.
- Type: Boolean
- Default:
false - Example:
verifyica.engine.prune.stacktraces=true
Usage:
# Prune stack traces for cleaner output
verifyica.engine.prune.stacktraces=true
Effect:
Without pruning:
at com.example.MyTest.testMethod(MyTest.java:42)
at org.verifyica.engine.internal.TestExecutor.execute(TestExecutor.java:123)
at org.verifyica.engine.internal.ArgumentProcessor.process(ArgumentProcessor.java:456)
at org.verifyica.engine.internal.ClassProcessor.process(ClassProcessor.java:789)
... 50 more framework lines
With pruning:
at com.example.MyTest.testMethod(MyTest.java:42)
Filter Configuration
verifyica.engine.filter.definitions.filename
Specifies the YAML file containing filter definitions.
- Type: String (filename)
- Default:
verifyica.engine.filter.definitions.yaml - Example:
verifyica.engine.filter.definitions.filename=my-filters.yaml
Usage:
# Use custom filter file
verifyica.engine.filter.definitions.filename=my-filters.yaml
See Filters for complete filter documentation.
Interceptor Configuration
These properties control which interceptors are automatically discovered and loaded.
verifyica.engine.autowired.engine.interceptors.exclude.regex
Exclude EngineInterceptors by regex pattern.
- Type: Regular expression
- Default: (none)
- Example:
verifyica.engine.autowired.engine.interceptors.exclude.regex=.*Debug.*
verifyica.engine.autowired.engine.interceptors.include.regex
Include only EngineInterceptors matching regex pattern.
- Type: Regular expression
- Default: (none - all included)
- Example:
verifyica.engine.autowired.engine.interceptors.include.regex=com\\.example\\..*
verifyica.engine.autowired.class.interceptors.exclude.regex
Exclude ClassInterceptors by regex pattern.
- Type: Regular expression
- Default: (none)
- Example:
verifyica.engine.autowired.class.interceptors.exclude.regex=.*Debug.*
verifyica.engine.autowired.class.interceptors.include.regex
Include only ClassInterceptors matching regex pattern.
- Type: Regular expression
- Default: (none - all included)
- Example:
verifyica.engine.autowired.class.interceptors.include.regex=com\\.example\\..*
Usage:
# Only load interceptors from specific package
verifyica.engine.autowired.class.interceptors.include.regex=com\\.example\\.interceptors\\..*
# Exclude debug interceptors in production
verifyica.engine.autowired.class.interceptors.exclude.regex=.*Debug.*
Maven Plugin Properties
These properties configure the Maven plugin behavior.
verifyica.maven.plugin.log.tests
Controls whether the Maven plugin logs test execution.
- Type: Boolean
- Default:
false - Example:
verifyica.maven.plugin.log.tests=true
Usage:
# Enable test logging in Maven plugin
verifyica.maven.plugin.log.tests=true
verifyica.maven.plugin.log.timing.units
Sets the time unit for Maven plugin timing logs.
- Type: String
- Values:
nanoseconds,microseconds,milliseconds,seconds - Default:
milliseconds - Example:
verifyica.maven.plugin.log.timing.units=seconds
Usage:
# Log timing in seconds
verifyica.maven.plugin.log.timing.units=seconds
Complete Configuration Example
Here’s a comprehensive verifyica.properties file:
# Parallelism Configuration
verifyica.engine.class.parallelism=4
verifyica.engine.argument.parallelism=2
# Thread Configuration
verifyica.engine.thread.type=virtual
# Logging Configuration
verifyica.engine.logger.level=INFO
verifyica.engine.logger.regex=
# Stack Trace Configuration
verifyica.engine.prune.stacktraces=true
# Filter Configuration
verifyica.engine.filter.definitions.filename=verifyica.engine.filter.definitions.yaml
# Interceptor Configuration
verifyica.engine.autowired.class.interceptors.include.regex=com\\.example\\.interceptors\\..*
verifyica.engine.autowired.class.interceptors.exclude.regex=.*Debug.*
# Maven Plugin Configuration
verifyica.maven.plugin.log.tests=true
verifyica.maven.plugin.log.timing.units=milliseconds
Environment-Specific Configuration
Development
verifyica.engine.argument.parallelism=1 # Sequential for easier debugging
verifyica.engine.logger.level=DEBUG
verifyica.engine.prune.stacktraces=false # Full stack traces
CI/CD
verifyica.engine.class.parallelism=4
verifyica.engine.argument.parallelism=4
verifyica.engine.thread.type=virtual
verifyica.engine.logger.level=INFO
verifyica.engine.prune.stacktraces=true
Production Integration Tests
verifyica.engine.argument.parallelism=1 # Sequential for stability
verifyica.engine.logger.level=WARN
verifyica.engine.prune.stacktraces=true
Next Steps
- Filters - Configure test filtering with YAML
- Parallelism - Deep dive into parallelism configuration
- Advanced → Parallelism - Advanced parallel execution patterns
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.