Clone
Cédric Champeau
committed
on 05 Jun
Add support for Java test fixtures
This commit introduces conventional support for _test fixtures_
in the Java ecosystem.

The `java` extens… Show more
Add support for Java test fixtures

This commit introduces conventional support for _test fixtures_

in the Java ecosystem.

The `java` extension, available when applying either the `java`

or `java-library` plugins, now adds a couple of methods:

- `enableTestFixtures`, which will create an additional source

set for test fixtures

- `usesTestFixturesOf`, which declares that this project makes

use of the test fixtures of another project or external module

This feature builds on top of the existing feature variant

infrastructure, which means that:

- test fixtures are published (as optional dependencies in Maven,

as variants with Gradle metadata)

- test fixtures have a conventional capability

The capability for test fixtures is `test-fixtures`, so it means

that if the project has a name `foo`, then its test fixtures

would be published with a capability name of `foo-test-fixtures`.

Test fixtures expose an API and an implementation, available

through the `testFixturesApi` and `testFixturesImplementation`

configurations.

When test fixtures are enabled, the test fixtures API automatically

gets a dependency onto the main component (aka `src/main/java`).

Show less

master + 247 more