Dagger
Search

tests

test is exposed as a standalone dagger function so it can be invoked
individually during TDD; All wires them up for parallel execution under
`dagger call all`.

Installation

dagger install github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453

Entrypoint

Return Type
Tests
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
func (m *MyModule) Example() *dagger.Tests  {
	return dag.
			Tests()
}
@function
def example() -> dagger.Tests:
	return (
		dag.tests()
	)
@func()
example(): Tests {
	return dag
		.tests()
}

Types

Tests 🔗

all() 🔗

All runs every java-module test in parallel.

parallel caps how many tests run concurrently inside this suite. Defaults to 0 (unbounded fan-out) — each dagger check job runs on its own runner, so in-runner parallelism is bounded by the VM, not the scheduler.

Return Type
Void !
Arguments
NameTypeDefault ValueDescription
parallelInteger !0No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 all --parallel integer
func (m *MyModule) Example(ctx context.Context, parallel int)   {
	return dag.
			Tests().
			All(ctx, parallel)
}
@function
async def example(parallel: int) -> None:
	return await (
		dag.tests()
		.all(parallel)
	)
@func()
async example(parallel: number): Promise<void> {
	return dag
		.tests()
		.all(parallel)
}

containerHasJdk() 🔗

ContainerHasJdk proves the base container is reachable, source is mounted, and the JDK’s java runs. Canary for every other test.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 container-has-jdk
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Containerhasjdk(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.containerhasjdk()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.containerHasJdk()
}

containerInfersJdkFromJavaVersionFile() 🔗

ContainerInfersJdkFromJavaVersionFile asserts .java-version (17) wins over the conflicting pom (21).

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 container-infers-jdk-from-java-version-file
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Containerinfersjdkfromjavaversionfile(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.containerinfersjdkfromjavaversionfile()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.containerInfersJdkFromJavaVersionFile()
}

containerUsesPinnedJdkVersion() 🔗

ContainerUsesPinnedJdkVersion asserts New(“17”) overrides the pom’s 21.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 container-uses-pinned-jdk-version
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Containerusespinnedjdkversion(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.containerusespinnedjdkversion()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.containerUsesPinnedJdkVersion()
}

gradleAssembleProducesJar() 🔗

GradleAssembleProducesJar asserts gradle assemble produces a jar.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 gradle-assemble-produces-jar
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Gradleassembleproducesjar(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.gradleassembleproducesjar()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.gradleAssembleProducesJar()
}

gradleBuildProducesArtifacts() 🔗

GradleBuildProducesArtifacts asserts gradle build produces artifacts.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 gradle-build-produces-artifacts
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Gradlebuildproducesartifacts(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.gradlebuildproducesartifacts()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.gradleBuildProducesArtifacts()
}

gradleCiCheckRunsChecksAndSkipsBuild() 🔗

GradleCiCheckRunsChecksAndSkipsBuild exercises the checks-only path: it runs both checks against the clean hello fixture via Check (not Run) and asserts no error. Check runs just the parallel check stages (Test, Check) and returns their aggregated result, so a nil return proves both enabled checks passed. The build (assemble) is not part of Check’s implementation, so there is no artifact to observe here.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 gradle-ci-check-runs-checks-and-skips-build
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Gradlecicheckrunschecksandskipsbuild(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.gradlecicheckrunschecksandskipsbuild()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.gradleCiCheckRunsChecksAndSkipsBuild()
}

gradleCiRunAllStagesProducesJar() 🔗

GradleCiRunAllStagesProducesJar runs the Gradle Ci pipeline with both checks enabled against the clean hello fixture and asserts Run produces a jar under build/libs.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 gradle-ci-run-all-stages-produces-jar
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Gradlecirunallstagesproducesjar(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.gradlecirunallstagesproducesjar()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.gradleCiRunAllStagesProducesJar()
}

gradleCiRunFailingTestAggregates() 🔗

GradleCiRunFailingTestAggregates runs the Gradle Ci pipeline against the failtest fixture with both checks enabled and asserts Run fails at the check stage and that BOTH enabled checks (Test, Check) failed rather than short-circuiting on the first. The parallel aggregator joins each job’s raw error (job names live in trace spans, not the Go-level string), so each failing gradle exec surfaces as a separate “exit code” line. Counting those occurrences confirms both checks ran and both failures propagated through Run.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 gradle-ci-run-failing-test-aggregates
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Gradlecirunfailingtestaggregates(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.gradlecirunfailingtestaggregates()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.gradleCiRunFailingTestAggregates()
}

gradleContainerHasGradle() 🔗

GradleContainerHasGradle proves the Gradle container has a working gradle.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 gradle-container-has-gradle
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Gradlecontainerhasgradle(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.gradlecontainerhasgradle()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.gradleContainerHasGradle()
}

gradleDisableWrapperUsesSystemGradle() 🔗

GradleDisableWrapperUsesSystemGradle asserts disableWrapper bypasses gradlew.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 gradle-disable-wrapper-uses-system-gradle
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Gradledisablewrapperusessystemgradle(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.gradledisablewrapperusessystemgradle()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.gradleDisableWrapperUsesSystemGradle()
}

gradleInfersJdkFromBuildGradle() 🔗

GradleInfersJdkFromBuildGradle asserts the Gradle container’s JDK is inferred from build.gradle.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 gradle-infers-jdk-from-build-gradle
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Gradleinfersjdkfrombuildgradle(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.gradleinfersjdkfrombuildgradle()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.gradleInfersJdkFromBuildGradle()
}

gradleTasksPassThrough() 🔗

GradleTasksPassThrough proves arbitrary tasks pass through to gradle.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 gradle-tasks-pass-through
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Gradletaskspassthrough(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.gradletaskspassthrough()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.gradleTasksPassThrough()
}

gradleTestPasses() 🔗

GradleTestPasses asserts gradle test succeeds on the hello fixture.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 gradle-test-passes
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Gradletestpasses(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.gradletestpasses()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.gradleTestPasses()
}

gradleUsesWrapperWhenPresent() 🔗

GradleUsesWrapperWhenPresent asserts the in-repo gradlew is used by default.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 gradle-uses-wrapper-when-present
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Gradleuseswrapperwhenpresent(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.gradleuseswrapperwhenpresent()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.gradleUsesWrapperWhenPresent()
}

mavenCiCheckRunsChecksAndSkipsPackage() 🔗

MavenCiCheckRunsChecksAndSkipsPackage exercises the checks-only path: it runs both checks against the clean hello fixture via Check (not Run) and asserts no error. Check runs just the parallel check stages (Test, Verify) and returns their aggregated result, so a nil return proves both enabled checks passed. Packaging is not part of Check’s implementation, so there is no artifact to observe here.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven-ci-check-runs-checks-and-skips-package
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Mavencicheckrunschecksandskipspackage(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.mavencicheckrunschecksandskipspackage()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.mavenCiCheckRunsChecksAndSkipsPackage()
}

mavenCiRunAllStagesProducesJar() 🔗

MavenCiRunAllStagesProducesJar runs the Maven Ci pipeline with both checks enabled against the clean hello fixture and asserts Run produces a jar under target/.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven-ci-run-all-stages-produces-jar
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Mavencirunallstagesproducesjar(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.mavencirunallstagesproducesjar()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.mavenCiRunAllStagesProducesJar()
}

mavenCiRunFailingTestAggregates() 🔗

MavenCiRunFailingTestAggregates runs the Maven Ci pipeline against the failtest fixture with both checks enabled and asserts Run fails at the check stage and that BOTH enabled checks (Test, Verify) failed rather than short-circuiting on the first. The parallel aggregator joins each job’s raw error (job names live in trace spans, not the Go-level string), so each failing mvn exec surfaces as a separate “exit code” line. Counting those occurrences confirms both checks ran and both failures propagated through Run.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven-ci-run-failing-test-aggregates
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Mavencirunfailingtestaggregates(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.mavencirunfailingtestaggregates()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.mavenCiRunFailingTestAggregates()
}

mavenCompileProducesClasses() 🔗

MavenCompileProducesClasses asserts mvn compile produces .class files.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven-compile-produces-classes
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Mavencompileproducesclasses(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.mavencompileproducesclasses()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.mavenCompileProducesClasses()
}

mavenContainerHasMaven() 🔗

MavenContainerHasMaven proves the Maven container has a working mvn.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven-container-has-maven
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Mavencontainerhasmaven(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.mavencontainerhasmaven()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.mavenContainerHasMaven()
}

mavenDisableWrapperUsesSystemMaven() 🔗

MavenDisableWrapperUsesSystemMaven asserts disableWrapper bypasses mvnw.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven-disable-wrapper-uses-system-maven
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Mavendisablewrapperusessystemmaven(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.mavendisablewrapperusessystemmaven()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.mavenDisableWrapperUsesSystemMaven()
}

mavenGoalsPassThrough() 🔗

MavenGoalsPassThrough proves arbitrary goals/flags pass through to mvn.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven-goals-pass-through
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Mavengoalspassthrough(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.mavengoalspassthrough()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.mavenGoalsPassThrough()
}

mavenInfersJdkFromPom() 🔗

MavenInfersJdkFromPom asserts the Maven container’s JDK is inferred from pom.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven-infers-jdk-from-pom
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Maveninfersjdkfrompom(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.maveninfersjdkfrompom()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.mavenInfersJdkFromPom()
}

mavenPackageProducesJar() 🔗

MavenPackageProducesJar asserts mvn package produces a jar.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven-package-produces-jar
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Mavenpackageproducesjar(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.mavenpackageproducesjar()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.mavenPackageProducesJar()
}

mavenPackageRunsTestsByDefault() 🔗

MavenPackageRunsTestsByDefault asserts the failing test runs (package fails) when skipTests is not set.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven-package-runs-tests-by-default
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Mavenpackagerunstestsbydefault(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.mavenpackagerunstestsbydefault()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.mavenPackageRunsTestsByDefault()
}

mavenPackageSkipTestsBypassesFailingTest() 🔗

MavenPackageSkipTestsBypassesFailingTest asserts skipTests produces a jar despite the failing test.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven-package-skip-tests-bypasses-failing-test
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Mavenpackageskiptestsbypassesfailingtest(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.mavenpackageskiptestsbypassesfailingtest()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.mavenPackageSkipTestsBypassesFailingTest()
}

mavenTestPasses() 🔗

MavenTestPasses asserts mvn test succeeds on the hello fixture.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven-test-passes
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Maventestpasses(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.maventestpasses()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.mavenTestPasses()
}

mavenUsesWrapperWhenPresent() 🔗

MavenUsesWrapperWhenPresent asserts the in-repo mvnw is used by default.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven-uses-wrapper-when-present
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Mavenuseswrapperwhenpresent(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.mavenuseswrapperwhenpresent()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.mavenUsesWrapperWhenPresent()
}

runJarPrintsOutput() 🔗

RunJarPrintsOutput builds a runnable jar from the run-jar fixture inside the JDK container, then runs it via Java.Run and checks its stdout.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 run-jar-prints-output
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Runjarprintsoutput(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.runjarprintsoutput()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.runJarPrintsOutput()
}

toolVersionReportsJdk() 🔗

ToolVersionReportsJdk asserts ToolVersion reports the pinned JDK major.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 tool-version-reports-jdk
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Toolversionreportsjdk(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.toolversionreportsjdk()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.toolVersionReportsJdk()
}