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

Tibor Digana commented on SUREFIRE-1539:
----------------------------------------

Yes, we have exactly these problems with users who provide bad workarounds or 
information and stackoverflow just follows this.
The Surefire has to follow the Maven dependencies and Jigsaw modularity because 
they are both relevant the same as they are relevant for application runtime 
and Java compiler. So. I do not see any reason why we should not respect it 
since the developer=architect of the project created it with a purpose. 
Regarding the cross-directory dependency with {{classifier=tests}} is bad habit 
the same bad habit using {{scope=system}}. If any framework has some technical 
possibility to use it, it does not mean it should be used with the only 
argument "because it is possible". Yes, bad design is technically always 
possible but the thing is that every feature of every framework must be 
considered very carefully and one should understand the context behind it why 
it was introduced in the world. Here test classes have a bounded context within 
contained Maven module and thus another module has to have its own 
{{src/test/java}}, and they do not want to be shared all over the multi module 
project.

> Surefire causes Jigwaw runtime errors when forkCount > 0
> --------------------------------------------------------
>
>                 Key: SUREFIRE-1539
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-1539
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: Maven Surefire Plugin
>    Affects Versions: 2.22.0
>            Reporter: foo bar
>            Priority: Major
>         Attachments: mvn-X-clean-install--forkCount0-OK.txt, 
> mvn-X-clean-install--noforkCount0-KO.txt
>
>
> h1. The problem
> I'm migrating my toy project to Jigsaw modules. 
>  Now I managed to make it work ({{maven clean install}} OK), but I had to 
> pass an additional flag to Surefire ({{forkCount=0}}) that I think I 
> shouldn't have to and feels very "magical" (in a bad way).
> To reproduce:
>      1. {{git clone [https://github.com/vandekeiser/wires.git]}}
>      2. {{git checkout REPORT_SUREFIRE}}
>      3.1 {{mvn clean install}}
>          -->passes
>      3.2 remove {{<forkCount>0</forkCount>}} in {{/pom.xml}}
>          -->fails
> h1. Analysis
> If I remove {{<forkCount>0</forkCount>}} or set it to 1 in {{/pom.xml}} I get:
> {code:java}
> [ERROR] Tests run: 5, Failures: 0, Errors: 5, Skipped: 0, Time elapsed: 5.678 
> s <<< FAILURE! - in 
> fr.cla.wires.core.boxes.exampleusage.propertybasedtesting.MultipleAnd_ReduceAndCollectShouldBeEquivalent_PbtTest
> [ERROR] 
> should_sometimes_give_false(fr.cla.wires.core.boxes.exampleusage.propertybasedtesting.MultipleAnd_ReduceAndCollectShouldBeEquivalent_PbtTest)
>   Time elapsed: 0.219 s  <<< ERROR!
> com.pholser.junit.quickcheck.internal.ReflectionException: 
> java.lang.IllegalAccessException: class 
> com.pholser.junit.quickcheck.internal.Reflection cannot access class 
> fr.cla.wires.core.support.tests.pbt.BooleansGenerator (in module 
> fr.cla.wires.core) because module fr.cla.wires.core does not export 
> fr.cla.wires.core.support.tests.pbt to unnamed module @4b5a5ed1
> {code}
> Looks like --add-opens is no longer added? Or is it just appended to the 
> command line, not added to the tmp java @arg file?
> Or is it that with forkCount=0 the test is ran on the classpath and with 
> forkCount=1 the test is ran on the modulepath?
>  
> If i set it to 2, I get instead:
> {code:java}
> [ERROR] Failed to execute goal 
> org.apache.maven.plugins:maven-surefire-plugin:2.22.0:test (default-test) on 
> project wires-support: Execution default-test of goal 
> org.apache.maven.plugins:maven-surefire-plugin:2.22.0:test failed: 
> java.lang.ClassNotFoundException: 
> org.apache.maven.plugin.surefire.StartupReportConfiguration -> [Help 1]{code}
>  Which is even more mysterious.
> Environment:
> {code:java}
> $ mvn -version
> Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 
> 2018-06-17T20:33:14+02:00)
> Maven home: G:\software\apache-maven-3.5.4-bin\apache-maven-3.5.4
> Java version: 10.0.2, vendor: Oracle Corporation, runtime: C:\Program 
> Files\Java\jdk-10.0.2
> Default locale: fr_FR, platform encoding: Cp1252
> OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to