MCPcopy
hub / github.com/junit-team/junit-framework

github.com/junit-team/junit-framework @r6.1.1 sqlite

repository ↗ · DeepWiki ↗ · release r6.1.1 ↗
17,090 symbols 76,123 edges 1,725 files 2,816 documented · 16%
README

JUnit

This repository is the home of JUnit Platform, Jupiter, and Vintage.

Sponsors

Support JUnit

Latest Releases

  • General Availability (GA): JUnit 6.1.1 (June 28, 2026)
  • Preview (Milestone/Release Candidate): N/A

Documentation

Contributing

Contributions to JUnit are both welcomed and appreciated. For specific guidelines regarding contributions, please see CONTRIBUTING.md in the root directory of the project. Those willing to use milestone or SNAPSHOT releases are encouraged to file feature requests and bug reports using the project's issue tracker. Issues marked with an up-for-grabs label are specifically targeted for community contributions.

Getting Help

Ask JUnit-related questions on StackOverflow or use the Q&A category on GitHub Discussions.

Continuous Integration Builds

CI Cross-Version

Official CI build server used to perform quick checks on submitted pull requests and for build matrices including the latest released OpenJDK and early access builds of the next OpenJDK.

Code Coverage

Code coverage using JaCoCo for the latest build is available on Codecov.

A code coverage report can also be generated locally via the Gradle Wrapper by executing ./gradlew clean jacocoRootReport. The results will be available in build/reports/jacoco/jacocoRootReport/html/index.html.

Develocity

Revved up by Develocity

JUnit utilizes Develocity for Build Scans, Build Cache, and Predictive Test Selection.

The latest Build Scans are available on ge.junit.org. Currently, only core team members can publish Build Scans on that server. You can, however, publish a Build Scan to scans.gradle.com by using the --scan parameter explicitly.

The remote Build Cache is enabled by default for everyone so that local builds can reuse task outputs from previous CI builds.

Building from Source

You need JDK 25 to build JUnit. Gradle toolchains are used to detect and potentially download additional JDKs for compilation and test execution.

All modules can be built and tested with the Gradle Wrapper using the following command:

./gradlew build

All modules can be installed in a local Maven repository for consumption in other local projects via the following command:

./gradlew publishToMavenLocal

Dependency Metadata

JUnit Jupiter version JUnit Vintage version JUnit Platform version

Consult the Dependency Metadata section of the User Guide for a list of all artifacts of the JUnit Platform, JUnit Jupiter, and JUnit Vintage.

Extension points exported contracts — how you extend this code

Transformer (Interface)
A transformer for values of type S to type T. The Transformer interface is similar to {@link [14 implementers]
junit-platform-commons/src/main/java/org/junit/platform/commons/function/Try.java
DetailsPrintingListener (Interface)
@since 1.0 [6 implementers]
junit-platform-console/src/main/java/org/junit/platform/console/output/DetailsPrintingListener.java
ArgumentsAggregator (Interface)
ArgumentsAggregator is an abstraction for the aggregation of arguments provided by an {@link org.junit.jupiter.p [15 implementers]
junit-jupiter-params/src/main/java/org/junit/jupiter/params/aggregator/ArgumentsAggregator.java
Filterable (Interface)
Filterable is implemented by org.junit.platform.engine.TestDescriptor TestDescriptors that may register [9 implementers]
junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/Filterable.java
ClassOrderer (Interface)
ClassOrderer defines the API for ordering top-level test classes and Nested @Nested test classes. In [10 implementers]
junit-jupiter-api/src/main/java/org/junit/jupiter/api/ClassOrderer.java
TestEngine (Interface)
A TestEngine facilitates discovery and execution of tests for a particular programming model. [10 implementers]
junit-platform-engine/src/main/java/org/junit/platform/engine/TestEngine.java
LauncherDiscoveryListener (Interface)
Register a concrete implementation of this interface with a {@link org.junit.platform.launcher.core.LauncherDiscoveryReq [13 …
junit-platform-launcher/src/main/java/org/junit/platform/launcher/LauncherDiscoveryListener.java
InterfaceWithGenericObjectParameter (Interface)
(no doc) [19 implementers]
platform-tests/src/test/java/org/junit/platform/commons/util/ReflectionUtilsWithGenericTypeHierarchiesTests.java

Core symbols most depended-on inside this repo

assertEquals
called by 1796
junit-jupiter-api/src/main/java/org/junit/jupiter/api/Assertions.java
of
called by 1242
junit-jupiter-api/src/main/java/org/junit/jupiter/api/Named.java
get
called by 830
junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/ExtensionContext.java
getName
called by 775
junit-jupiter-api/src/main/java/org/junit/jupiter/api/Named.java
assertTrue
called by 712
junit-jupiter-api/src/main/java/org/junit/jupiter/api/Assertions.java
map
called by 655
junit-platform-commons/src/main/java/org/junit/platform/commons/util/StringUtils.java
test
called by 643
jupiter-tests/src/test/java/org/junit/jupiter/engine/extension/AutoCloseTests.java
isEmpty
called by 545
junit-platform-launcher/src/main/java/org/junit/platform/launcher/tagexpression/Stack.java

Shape

Method 13,537
Class 3,232
Interface 257
Enum 64

Languages

Java100%

Modules by API surface

jupiter-tests/src/test/java/org/junit/jupiter/params/ParameterizedTestIntegrationTests.java348 symbols
jupiter-tests/src/test/java/org/junit/jupiter/params/ParameterizedClassIntegrationTests.java301 symbols
platform-tests/src/test/java/org/junit/platform/commons/util/ReflectionUtilsTests.java300 symbols
jupiter-tests/src/test/java/org/junit/jupiter/engine/extension/TempDirectoryTests.java207 symbols
platform-tests/src/test/java/org/junit/platform/engine/support/hierarchical/ParallelExecutionIntegrationTests.java154 symbols
platform-tests/src/test/java/org/junit/platform/engine/discovery/DiscoverySelectorsTests.java147 symbols
jupiter-tests/src/test/java/org/junit/jupiter/engine/ClassTemplateInvocationTests.java142 symbols
platform-tests/src/test/java/org/junit/platform/commons/util/AnnotationUtilsTests.java135 symbols
jupiter-tests/src/test/java/org/junit/jupiter/params/provider/MethodArgumentsProviderTests.java133 symbols
jupiter-tests/src/test/java/org/junit/jupiter/api/AssertArrayEqualsAssertionsTests.java123 symbols
jupiter-tests/src/test/java/org/junit/jupiter/engine/extension/OrderedMethodTests.java119 symbols
jupiter-tests/src/test/java/org/junit/jupiter/engine/extension/ExtensionRegistrationViaParametersAndFieldsTests.java117 symbols

Dependencies from manifests, versioned

junit:junit
org.junit.jupiter:junit-jupiter
org.junit.platform:junit-platform-commons
org.junit.platform:junit-platform-reporting
org.junit.vintage:junit-vintage-engine
org.junit:junit-bom
@antora/collector-extension1.0.3 · 1×
@antora/lunr-extension1.0.0-alpha.13 · 1×
@asciidoctor/tabs1.0.0-beta.6 · 1×
@springio/antora-extensions1.14.11 · 1×
@springio/antora-xref-extension1.0.0-alpha.5 · 1×
antora3.2.0-alpha.11 · 1×

For agents

$ claude mcp add junit-framework \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact