|
[[appendix]] |
|
== Appendix |
|
|
|
[[reproducible-builds]] |
|
=== Reproducible Builds |
|
|
|
Starting with version 5.7, JUnit 5 aims for its non-javadoc JARs to be |
|
https://reproducible-builds.org/[reproducible]. |
|
|
|
Under identical build conditions, such as Java version, repeated builds should provide the |
|
same output byte-for-byte. |
|
|
|
This means that anyone can reproduce the build conditions of the artifacts on Maven |
|
Central/Sonatype and produce the same output artifact locally, confirming that the |
|
artifacts in the repositories were actually generated from this source code. |
|
|
|
[[dependency-metadata]] |
|
=== Dependency Metadata |
|
|
|
Artifacts for final releases and milestones are deployed to {Maven_Central}, and snapshot |
|
artifacts are deployed to Sonatype's {snapshot-repo}[snapshots repository] under |
|
{snapshot-repo}/org/junit/[/org/junit]. |
|
|
|
[[dependency-metadata-junit-platform]] |
|
==== JUnit Platform |
|
|
|
* *Group ID*: `org.junit.platform` |
|
* *Version*: `{platform-version}` |
|
* *Artifact IDs*: |
|
`junit-platform-commons`:: |
|
Common APIs and support utilities for the JUnit Platform. Any API annotated with |
|
`@API(status = INTERNAL)` is intended solely for usage within the JUnit framework |
|
itself. _Any usage of internal APIs by external parties is not supported!_ |
|
`junit-platform-console`:: |
|
Support for discovering and executing tests on the JUnit Platform from the console. |
|
See <<running-tests-console-launcher>> for details. |
|
`junit-platform-console-standalone`:: |
|
An executable JAR with all dependencies included is provided in Maven Central under the |
|
https://repo1.maven.org/maven2/org/junit/platform/junit-platform-console-standalone[junit-platform-console-standalone] |
|
directory. See <<running-tests-console-launcher>> for details. |
|
`junit-platform-engine`:: |
|
Public API for test engines. See <<launcher-api-engines-custom>> for details. |
|
`junit-platform-jfr`:: |
|
Provides a `LauncherDiscoveryListener` and `TestExecutionListener` for Java Flight |
|
Recorder events on the JUnit Platform. See <<running-tests-listeners-flight-recorder>> |
|
for details. |
|
`junit-platform-launcher`:: |
|
Public API for configuring and launching test plans -- typically used by IDEs and |
|
build tools. See <<launcher-api>> for details. |
|
`junit-platform-reporting`:: |
|
`TestExecutionListener` implementations that generate test reports -- typically used |
|
by IDEs and build tools. See <<junit-platform-reporting>> for details. |
|
`junit-platform-runner`:: |
|
Runner for executing tests and test suites on the JUnit Platform in a JUnit 4 |
|
environment. See <<running-tests-junit-platform-runner>> for details. |
|
`junit-platform-suite`:: |
|
JUnit Platform Suite artifact that transitively pulls in dependencies on |
|
`junit-platform-suite-api` and `junit-platform-suite-engine` for simplified dependency |
|
management in build tools such as Gradle and Maven. |
|
`junit-platform-suite-api`:: |
|
Annotations for configuring test suites on the JUnit Platform. Supported by the |
|
<<junit-platform-suite-engine, JUnit Platform Suite Engine>> and the |
|
<<running-tests-junit-platform-runner, JUnitPlatform runner>>. |
|
`junit-platform-suite-commons`:: |
|
Common support utilities for executing test suites on the JUnit Platform. |
|
`junit-platform-suite-engine`:: |
|
Engine that executes test suites on the JUnit Platform; only required at runtime. See |
|
<<junit-platform-suite-engine,JUnit Platform Suite Engine>> for details. |
|
`junit-platform-testkit`:: |
|
Provides support for executing a test plan for a given `TestEngine` and then |
|
accessing the results via a fluent API to verify the expected results. |
|
|
|
[[dependency-metadata-junit-jupiter]] |
|
==== JUnit Jupiter |
|
|
|
* *Group ID*: `org.junit.jupiter` |
|
* *Version*: `{jupiter-version}` |
|
* *Artifact IDs*: |
|
`junit-jupiter`:: |
|
JUnit Jupiter aggregator artifact that transitively pulls in dependencies on |
|
`junit-jupiter-api`, `junit-jupiter-params`, and `junit-jupiter-engine` for |
|
simplified dependency management in build tools such as Gradle and Maven. |
|
`junit-jupiter-api`:: |
|
JUnit Jupiter API for <<writing-tests,writing tests>> and <<extensions,extensions>>. |
|
`junit-jupiter-engine`:: |
|
JUnit Jupiter test engine implementation; only required at runtime. |
|
`junit-jupiter-params`:: |
|
Support for <<writing-tests-parameterized-tests,parameterized tests>> in JUnit Jupiter. |
|
`junit-jupiter-migrationsupport`:: |
|
Support for migrating from JUnit 4 to JUnit Jupiter; only required for support for |
|
JUnit 4's `@Ignore` annotation and for running selected JUnit 4 rules. |
|
|
|
[[dependency-metadata-junit-vintage]] |
|
==== JUnit Vintage |
|
|
|
* *Group ID*: `org.junit.vintage` |
|
* *Version*: `{vintage-version}` |
|
* *Artifact ID*: |
|
`junit-vintage-engine`:: |
|
JUnit Vintage test engine implementation that allows one to run _vintage_ JUnit tests |
|
on the JUnit Platform. _Vintage_ tests include those written using JUnit 3 or JUnit 4 |
|
APIs or tests written using testing frameworks built on those APIs. |
|
|
|
[[dependency-metadata-junit-bom]] |
|
==== Bill of Materials (BOM) |
|
|
|
The _Bill of Materials_ POM provided under the following Maven coordinates can be used to |
|
ease dependency management when referencing multiple of the above artifacts using |
|
https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies[Maven] |
|
or https://docs.gradle.org/current/userguide/platforms.html#sub:bom_import[Gradle]. |
|
|
|
* *Group ID*: `org.junit` |
|
* *Artifact ID*: `junit-bom` |
|
* *Version*: `{bom-version}` |
|
|
|
[[dependency-metadata-dependencies]] |
|
==== Dependencies |
|
|
|
Most of the above artifacts have a dependency in their published Maven POMs on the |
|
following _@API Guardian_ JAR. |
|
|
|
* *Group ID*: `org.apiguardian` |
|
* *Artifact ID*: `apiguardian-api` |
|
* *Version*: `{apiguardian-version}` |
|
|
|
In addition, most of the above artifacts have a direct or transitive dependency on the |
|
following _OpenTest4J_ JAR. |
|
|
|
* *Group ID*: `org.opentest4j` |
|
* *Artifact ID*: `opentest4j` |
|
* *Version*: `{ota4j-version}` |
|
|
|
[[dependency-diagram]] |
|
=== Dependency Diagram |
|
|
|
image::{componentDiagramFile}[] |
|
|