You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Tibor Digana (Jira)" <ji...@apache.org> on 2020/05/13 22:37:00 UTC

[jira] [Closed] (SUREFIRE-1792) Reusable dependency tests

     [ https://issues.apache.org/jira/browse/SUREFIRE-1792?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tibor Digana closed SUREFIRE-1792.
----------------------------------
      Assignee: Tibor Digana
    Resolution: Not A Bug

You are following bad practices.
The test jar should not be inherited. Many times the people do it and distribute a shared test logic across modules, instead of creating a regular module. You can skip deployment (see {{maven-deploy-plugin}}) of such module if you want to prevent foreign projects using it. Then this modules becomes "yours".
You have to test only module's src/main/java code, and that's why you have src/test/java. The test is per module, and not cross modules!

> Reusable dependency tests
> -------------------------
>
>                 Key: SUREFIRE-1792
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-1792
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: Maven Surefire Plugin
>    Affects Versions: 3.0.0-M3
>         Environment: Windows 10 home
> Maven 3.6.3 (w/ wrapper)
> Adopt OpenJDK 11(11.0.4-hotspot)
>            Reporter: Mantas Gridinas
>            Assignee: Tibor Digana
>            Priority: Major
>         Attachments: 2020-05-13T23-49-29_619-jvmRun1.dump, 2020-05-13T23-49-29_619.dumpstream
>
>
> Hi!
> I read that you can do attached tests by installing the test-jar (from http://maven.apache.org/guides/mini/guide-attached-tests.html) and then using dependenciesToScan configuration option to scan the test-jar dependency for tests and run them. This gave me an idea of providing a test jar that I could test implementation of my interfaces without having to write repeated tests for them (I load the implementations via ServiceLoader mechanism) . I've got a project for that at https://gitlab.com/Dragas/eternal-witness. Mind you the project does use project jigsaw features.
> While experimenting, I ended up extracting the "api" tests into its own module, but the issue continues to remain.
> Trying this approach I seem to observe an interesting behavior. Surefire plugin does indeed find that there are PlayerServiceTest and DeckServiceTest files on the dependency graph, but it fails to load them for some reason. Perhaps it does not patch the test module with the dependency module? I have attached the JVM dumpstreams from my experimenting.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)