# junit-team/junit-framework

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/junit-team-junit-framework).**

6,970 stars · 1,656 forks · Java · epl-2.0

## Links

- GitHub: https://github.com/junit-team/junit-framework
- Homepage: https://junit.org
- awesome-repositories: https://awesome-repositories.com/repository/junit-team-junit-framework.md

## Topics

`java` `junit` `junit-jupiter` `junit-platform` `junit-vintage` `kotlin` `kotlin-testing` `test-framework`

## Description

This project is a JVM testing framework that provides a foundation for defining and running automated tests using a pluggable engine architecture. It functions as a JVM test orchestrator and a modular test engine API, allowing multiple testing engines to be grouped and executed as a single coordinated unit.

The framework includes a platform launcher for discovering and executing test suites from build systems, integrated development environments, or the command line. It enables the creation of custom testing frameworks through a standardized interface that integrates into a shared execution platform.

The system covers broad capability areas including test suite orchestration, environment management for system properties and temporary directories, and parallel test execution. It also provides tools for parameterized test generation, legacy test compatibility, and assertion failure refinement to highlight the cause of test failures.

## Tags

### Testing & Quality Assurance

- [Software Testing](https://awesome-repositories.com/f/testing-quality-assurance/software-testing.md) — Provides a comprehensive foundation for writing and running automated test cases on the JVM.
- [Multi-Engine Execution](https://awesome-repositories.com/f/testing-quality-assurance/testing-infrastructure-management/multi-engine-execution.md) — Acts as a unified platform to launch different testing frameworks and execute diverse sets of tests. ([source](https://docs.junit.org/6.0.3/index.html))
- [Platform Integration Frameworks](https://awesome-repositories.com/f/testing-quality-assurance/integration-testing/junit-execution-support/platform-integration-frameworks.md) — Enables building custom test engines and frameworks that integrate into a shared execution foundation.
- [Parallel Test Execution](https://awesome-repositories.com/f/testing-quality-assurance/parallel-test-execution.md) — Distributes test cases across a thread pool to execute independent tests concurrently and reduce runtime. ([source](https://docs.junit.org/current/release-notes.html))
- [Pluggable Testing Frameworks](https://awesome-repositories.com/f/testing-quality-assurance/pluggable-testing-frameworks.md) — Provides a pluggable engine architecture allowing custom testing frameworks to be integrated into a shared execution platform. ([source](https://docs.junit.org/5.14.2/overview.html))
- [Test Execution and Orchestration](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/test-execution-orchestration.md) — Coordinates the grouping and execution of diverse test collections and multiple engines as a single unit.
- [Test Frameworks](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks.md) — Serves as a foundation for defining and running automated tests on the JVM using a pluggable architecture.
- [Test Discovery Mechanisms](https://awesome-repositories.com/f/testing-quality-assurance/test-discovery-mechanisms.md) — Automatically locates tests by scanning modules and classpath resources to define the execution scope. ([source](https://docs.junit.org/current/release-notes.html))
- [Test Engine APIs](https://awesome-repositories.com/f/testing-quality-assurance/test-engine-apis.md) — Provides a standardized interface for developers to create specialized test execution engines. ([source](https://docs.junit.org/6.0.1/index.html))
- [Test Orchestration](https://awesome-repositories.com/f/testing-quality-assurance/testing-infrastructure-management/test-orchestration.md) — Coordinates multiple testing engines to run diverse sets of tests as a single coordinated unit.
- [Test Isolation](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-isolation.md) — Manages temporary directories and system properties to ensure isolated and stable test environments.
- [Test Execution Controls](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/test-lifecycle-execution-control/test-execution-controls.md) — Allows controlling test flow through cancellation tokens and immediate termination upon the first failure. ([source](https://docs.junit.org/current/release-notes.html))
- [Test Parameterization](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/test-lifecycle-execution-control/test-parameterization.md) — Includes utilities to generate multiple unique test cases by mapping external data sets to test method signatures.
- [Test Case Definitions](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/assertions-and-validation/test-case-definitions.md) — Provides a flexible programming and extension model for defining automated tests and custom behaviors. ([source](https://docs.junit.org/6.0.2/index.html))
- [Environment Property Management](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/execution-and-infrastructure/test-infrastructure-configuration/test-fixture-systems/environment-property-management.md) — Enables setting, clearing, and restoring system properties and locales for specific tests via extensions. ([source](https://docs.junit.org/current/release-notes.html))
- [Test Lifecycle Hooks](https://awesome-repositories.com/f/testing-quality-assurance/testing-infrastructure-management/test-orchestration/test-setup-orchestrators/test-lifecycle-hooks.md) — Implements mechanisms for triggering custom setup and teardown logic at specific phases of the test lifecycle.

### Software Engineering & Architecture

- [Plugin-Based Architectures](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures/plugin-based-architectures.md) — Employs a plugin-based architecture that decouples test discovery and execution from the platform launcher.
- [Assertion Stack Filtering](https://awesome-repositories.com/f/software-engineering-architecture/stacks/stack-trace-formatters/error-stack-filtering/assertion-stack-filtering.md) — Filters internal framework stack frames from assertion errors to highlight the actual user-defined failure point.

### Development Tools & Productivity

- [Temporary Directory Managers](https://awesome-repositories.com/f/development-tools-productivity/temporary-directory-configuration/temporary-directory-managers.md) — Implements automated creation and configurable deletion strategies for isolated temporary directories during test runs. ([source](https://docs.junit.org/current/release-notes.html))
- [Test Suite Launchers](https://awesome-repositories.com/f/development-tools-productivity/test-suite-launchers.md) — Provides a platform launcher for discovering and executing test suites from build systems, IDEs, or the CLI.

### Programming Languages & Runtimes

- [Test Framework Compatibility Layers](https://awesome-repositories.com/f/programming-languages-runtimes/legacy-runtime-compatibility/test-framework-compatibility-layers.md) — Executes older test versions using a compatibility layer to ensure stability during platform migrations. ([source](https://docs.junit.org/6.0.0/index.html))
