[
https://issues.apache.org/jira/browse/MSHADE-342?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17005956#comment-17005956
]
Herve Boutemy commented on MSHADE-342:
--------------------------------------
after writing, I just saw that the convention is followed and works when ITs
are not run in isolation:
{noformat}
[INFO] --- maven-invoker-plugin:3.1.0:integration-test (integration-test) @
maven-shade-plugin ---
[INFO] Running 1 setup job:
[INFO] Building: setup-parent/pom.xml
[INFO] setup-parent/pom.xml ............................. SUCCESS
(1.4 s)
[INFO] Setup done.
[INFO] Building: reloc-abs-resource-path-exclude/pom.xml
[INFO] reloc-abs-resource-path-exclude/pom.xml .......... SUCCESS
(3.6 s)
{noformat}
on running setup also on ITs run in isolation, perhaps m-invoker-p can be
improved, but I don't see what we can do at m-shade-p level
> 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)