Skip to content

esz/testfixtures

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

When applying the java-test-fixtures plugin to a project, classes from sourceSets.main are put onto the test classpath twice, which imho might be a bug in gradle's handling of test-fixtures.

gradlew test --tests at.myorg.testfixtures.MyTest.classesFromMainSourceSetArePresentMultipleTimes yields

  • file:/.../testfixtures/build/classes/java/main/at/myorg/testfixtures/App.class
  • jar:file:/.../testfixtures/build/libs/testfixtures.jar!/at/myorg/testfixtures/App.class

while only

file:/.../testfixtures/build/classes/java/main/at/myorg/testfixtures/App.class

is expected.

Notice, that the project itself is present on the dependency tree twice:

gradlew dependencies --configuration testRuntimeClasspath

> Task :dependencies

------------------------------------------------------------
Root project
------------------------------------------------------------

testRuntimeClasspath - Runtime classpath of source set 'test'.
+--- project : (*)
+--- org.junit.jupiter:junit-jupiter-api:5.5.2
|    +--- org.apiguardian:apiguardian-api:1.1.0
|    +--- org.opentest4j:opentest4j:1.2.0
|    \--- org.junit.platform:junit-platform-commons:1.5.2
|         \--- org.apiguardian:apiguardian-api:1.1.0
+--- org.junit.jupiter:junit-jupiter-engine:5.5.2
|    +--- org.apiguardian:apiguardian-api:1.1.0
|    +--- org.junit.platform:junit-platform-engine:1.5.2
|    |    +--- org.apiguardian:apiguardian-api:1.1.0
|    |    +--- org.opentest4j:opentest4j:1.2.0
|    |    \--- org.junit.platform:junit-platform-commons:1.5.2 (*)
|    \--- org.junit.jupiter:junit-jupiter-api:5.5.2 (*)
\--- project : (*)

(*) - dependencies omitted (listed previously)

A web-based, searchable dependency report is available by adding the --scan option.

The result of dependencyInsight are as follows:

gradlew dependencyInsight --dependency testfixtures --configuration testRuntimeClasspath

> Task :dependencyInsight
project :
   variant "testRuntimeClasspath" [
      org.gradle.usage               = java-runtime
      org.gradle.libraryelements     = jar
      org.gradle.dependency.bundling = external
      org.gradle.jvm.version         = 8
   ]
   variant "testFixturesRuntimeElements" [
      org.gradle.usage               = java-runtime
      org.gradle.libraryelements     = jar
      org.gradle.dependency.bundling = external
      org.gradle.category            = library (not requested)
      org.gradle.jvm.version         = 8
   ]
   variant "runtimeElements" [
      org.gradle.usage               = java-runtime
      org.gradle.libraryelements     = jar
      org.gradle.dependency.bundling = external
      org.gradle.category            = library (not requested)
      org.gradle.jvm.version         = 8
   ]

project :
\--- project : (*)

project :
\--- project : (*)

(*) - dependencies omitted (listed previously)

A web-based, searchable dependency report is available by adding the --scan option.

Removing the java-test-fixtures plugin from the project (and moving all sources from src/testFixtures into src/test to avoid compile errors) makes the jar:file:... classpath resource disappear. Also, the dependency tree looks more familiar:

gradlew dependencies --configuration testRuntimeClasspath

> Task :dependencies

------------------------------------------------------------
Root project
------------------------------------------------------------

testRuntimeClasspath - Runtime classpath of source set 'test'.
+--- org.junit.jupiter:junit-jupiter-api:5.5.2
|    +--- org.apiguardian:apiguardian-api:1.1.0
|    +--- org.opentest4j:opentest4j:1.2.0
|    \--- org.junit.platform:junit-platform-commons:1.5.2
|         \--- org.apiguardian:apiguardian-api:1.1.0
\--- org.junit.jupiter:junit-jupiter-engine:5.5.2
     +--- org.apiguardian:apiguardian-api:1.1.0
     +--- org.junit.platform:junit-platform-engine:1.5.2
     |    +--- org.apiguardian:apiguardian-api:1.1.0
     |    +--- org.opentest4j:opentest4j:1.2.0
     |    \--- org.junit.platform:junit-platform-commons:1.5.2 (*)
     \--- org.junit.jupiter:junit-jupiter-api:5.5.2 (*)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages