[ 
https://issues.apache.org/jira/browse/SUREFIRE-1909?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17327229#comment-17327229
 ] 

Tibor Digana edited comment on SUREFIRE-1909 at 7/23/21, 5:57 AM:
------------------------------------------------------------------

[~c...@newsclub.de]
Pls show us how the CLI would look like if you want to help us. Check it out 
with debug logs {{mvn -X test}} and you will see JMPS options we use in the 
@file of the CLI.


was (Author: tibor17):
[~c...@newsclub.de]
{{ModularClasspathForkConfiguration.java}} is in the module 
{{maven-surefire-common}} and therefore it has nothing to do with the forked 
JVM.
You have to show us how the CLI would look like if you want to help us. Check 
it out with debug logs {{mvn -X test}} and you will see JMPS options we use in 
the @file of the CLI.

> Support JUnit 5 reflection access by changing add-exports to add-opens
> ----------------------------------------------------------------------
>
>                 Key: SUREFIRE-1909
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-1909
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: JUnit 5.x support
>    Affects Versions: 3.0.0-M5
>            Reporter: Christian Kohlschütter
>            Priority: Major
>         Attachments: surefire-jpms-bug.tar.gz
>
>
> Testing JUnit 5 classes of a JPMS-enabled project with Surefire may fail if a 
> test class (or, for example, an abstract test base class) is not declared 
> "public". I'm seeing the following error:
>  
> {code:java}
> java.lang.reflect.InaccessibleObjectException: Unable to make public static 
> void some.package.SomeClass.setupClass() throws java.io.IOException 
> accessible: module some.module does not "opens some.package" to unnamed 
> module @754ba872{code}
> This could be fixed by adding the recommended "{{opens some.package}}" to the 
> project's module-info.java, however that is undesirable since it changes the 
> project's behavior beyond just unit testing. Adding a secondary "test-only" 
> module-info.java is also counterproductive since not all IDEs support this, 
> and these two files would have to be kept in sync, which is non-trivial.
> An easy fix would be to change the "{{--add-exports-}}" VM parameter that 
> surefire adds automatically to "{{-}}{{add-opens}}" in 
> {{maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java}}
> This bug is particularly bad because PMD now specifically complains about 
> junit5 classes marked as public instead of package-private; see 
> [https://pmd.github.io/2021/05/29/PMD-6.35.0/]



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

Reply via email to