[ https://issues.apache.org/jira/browse/MSHADE-342?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17006476#comment-17006476 ]
Peter De Maeyer commented on MSHADE-342: ---------------------------------------- That feels like a workaround and no real solution to me. The downside of that is that you require everyone who wants to run an IT in isolation suddenly needs to "know" about a parent project that the IT project itself has no relation with. Can't we do better than that? The {{maven-invoker-plugin}} knows that it needs to run a parent project when you run a test in isolation. I think that the only thing that is missing is that the parent project isn't been copied to the {{target/}} directory, which is causing the failure. Why can't we just fix that and make sure the setup project is copied to the {{target/}} directory? That would be a fix in {{MINVOKER}} rather than {{MSHADE}}... > Many integration tests fail when run in isolation > ------------------------------------------------- > > Key: MSHADE-342 > URL: https://issues.apache.org/jira/browse/MSHADE-342 > Project: Maven Shade Plugin > Issue Type: Bug > Affects Versions: 3.2.2 > Reporter: Peter De Maeyer > Priority: Minor > > Maven invoker plugin supports running ITs in isolation, but many ITs fail > when run in isolation. > One example (there are many others): > {code:bash} > mvn -Prun-its clean verify -Dinvoker.test=MSHADE-258_module_relocation > {code} > They fail because of a missing {{target/it/setup-parent/pom.xml}}. > The failure is logged in {{target/it/setup-parent/build.log}}. > The reason is that there is a missing parent dependency, which is apparently > required for _any_ IT in this project. > When you run all the ITs together, it works by accident because the missing > directory is created by some other test in the beginning of the IT test run, > and then all subsequent tests work as well. > h3. Potential solution > A fix is to identify the broken ITs by running all of them in isolation and > add the following to all of the broken ones: > {code:xml} > <parent> > <groupId>org.apache.maven.plugins.shade.its</groupId> > <artifactId>shade-parent</artifactId> > <version>1.0</version> > <relativePath>../setup-parent</relativePath> > </parent> > {code} > It should be documented somewhere (maybe it is but I overlooked it?) that, > when writing an IT, this _must_ be the parent. > The acceptance criteria for the fix should be: > # {{mvn -Run-its clean verify -Dinvoker.test=<any-IT>}} must run the IT in > isolation. > # Optional, but nice if it works: after running the IT (or all ITs) once, it > must be possible to debug the Maven project by doing {{cd target/it/<any-IT>; > mvnDebug install}}. > (+) It satisfies both acceptance criteria. > (-) Every individual IT's {{pom.xml}} needs to be updated with a parent > dependency it has no business with. > (-) It excludes writing an IT for a root project (that has no parent). > Maybe we can find a solution that doesn't involve updating all IT projects. > I'll need to investigate a bit more, first I'll need to figure out where the > {{setup-parent}} project comes from. -- This message was sent by Atlassian Jira (v8.3.4#803005)