Verifyica

Learn More Get Started

JUnit Platform based TestEngine for argument-driven testing with advanced lifecycle management

Verifyica provides a powerful framework for parameterized testing that goes beyond traditional approaches. Write tests once, run them across multiple arguments with complete lifecycle control, advanced parallelism, and sophisticated dependency management.

Argument-Driven Testing

Write tests that execute across multiple arguments with type-safe Argument<T> support and flexible suppliers.

Advanced Lifecycle

Complete lifecycle management with Prepare, BeforeAll, BeforeEach, Test, AfterEach, AfterAll, and Conclude phases for each argument.

Parallel Execution

Fine-grained parallelism control at class, argument, and test levels with configurable thread pools.

Test Dependencies

Define explicit test dependencies and execution order with @DependsOn and @Order annotations.

Interceptors

Hook into test lifecycle with ClassInterceptor and EngineInterceptor for cross-cutting concerns.

Production Ready

Used in production with comprehensive test coverage, minimal dependencies, and Java 8+ compatibility.

Quick Example

public class ParallelArgumentTest {

    @Verifyica.ArgumentSupplier(parallelism = 2)
    public static Object arguments() {
        Collection<String> collection = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            collection.add("string-" + i);
        }
        return collection;
    }

    @Verifyica.BeforeAll
    public void beforeAll(String argument) {
        // Setup for this argument
    }

    @Verifyica.Test
    public void test1(String argument) {
        // Test with this argument
    }

    @Verifyica.AfterAll
    public void afterAll(String argument) {
        // Cleanup for this argument
    }
}

Each test method runs 10 times (once per argument) with 2 arguments executing in parallel.

Contributions Welcome!

We welcome contributions via Pull Requests on GitHub!

Read more

Download from Maven Central

Production releases available on Maven Central

Read more

Join the Discussion

Have questions? Join our community discussions!

Read more