maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Herve Boutemy (Jira)" <>
Subject [jira] [Commented] (MSHADE-342) Many ITs fail when run in isolation
Date Sun, 29 Dec 2019 09:50:00 GMT


Herve Boutemy commented on MSHADE-342:

nice catch: looks like this IT should be defined as a setup IT = the normal way to show its
special role
setting relativePath is a good workaround, given the setup is really minimal
putting the pom.xml in the root directory and not defining it as setup job could perhaps do
even a better job at showing the intent of this parent pom (that is just a config for Java

> Many ITs fail when run in isolation
> -----------------------------------
>                 Key: MSHADE-342
>                 URL:
>             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 running
them 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 1
> 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.
> (+) This will work.
> (-) 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

View raw message