Ok, so the tree has output like this:
--------------
[INFO] +- com.att.idp:idp-seed-sdk-core:jar:2.7.0-SNAPSHOT:compile
[INFO] |  +- org.junit.jupiter:junit-jupiter-api:jar:5.8.2:compile
[INFO] |  |  +- org.opentest4j:opentest4j:jar:1.2.0:compile
[INFO] |  |  \- org.apiguardian:apiguardian-api:jar:1.1.2:compile
[INFO] |  +- org.junit.jupiter:junit-jupiter-engine:jar:5.8.2:compile
[INFO] |  +-
org.junit.jupiter:junit-jupiter-migrationsupport:jar:5.8.2:compile
[INFO] |  +- org.junit.jupiter:junit-jupiter-params:jar:5.8.2:compile
[INFO] |  +- org.junit.platform:junit-platform-commons:jar:1.8.2:compile
[INFO] |  +- org.junit.platform:junit-platform-console:jar:1.8.2:compile
[INFO] |  +- org.junit.platform:junit-platform-engine:jar:1.8.2:compile
[INFO] |  +- org.junit.platform:junit-platform-jfr:jar:1.8.2:compile
[INFO] |  +- org.junit.platform:junit-platform-launcher:jar:1.8.2:compile
[INFO] |  +- org.junit.platform:junit-platform-reporting:jar:1.8.2:compile
[INFO] |  +- org.junit.platform:junit-platform-runner:jar:1.8.2:compile
[INFO] |  +- org.junit.platform:junit-platform-suite:jar:1.8.2:compile
[INFO] |  +- org.junit.platform:junit-platform-suite-api:jar:1.8.2:compile
[INFO] |  +-
org.junit.platform:junit-platform-suite-commons:jar:1.8.2:compile
[INFO] |  +-
org.junit.platform:junit-platform-suite-engine:jar:1.8.2:compile
[INFO] |  +- org.junit.platform:junit-platform-testkit:jar:1.8.2:compile
[INFO] |  \- org.junit.vintage:junit-vintage-engine:jar:5.8.2:compile
-----------------
It's a little hard to see with a proportional font, but the top line there
is the artifact that references it.  In my parent pom, where this artifact
is specified, I did the following:
---------------------
        <dependency>
            <groupId>com.att.idp</groupId>
            <artifactId>idp-seed-sdk-core</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.platform</groupId>
                    <artifactId>junit-platform-runner</artifactId>
                </exclusion>
            </exclusions>
</dependency>
------------

This made no difference.

The only thing that makes this do what it needs to do is adding the
"surefire-junit-platform" dependency to the surefire plugin, but I have to
do that in every service that uses that parent pom. This is the only change
that runs both the JUnit 4 and JUnit 5 tests.

On Fri, Jun 17, 2022 at 12:13 PM Slawomir Jaranowski <s.jaranow...@gmail.com>
wrote:

> Import scope only sets versions of dependency - not add it to dependency.
>
> Please examine output of dependency:tree and look where is added
> junit-platform-runner
>
> pt., 17 cze 2022 o 20:47 David Karr <davidmichaelk...@gmail.com>
> napisał(a):
>
> > Ok, what is the proper way to do that, considering I have the following
> in
> > a bom imported by my parent pom:
> > --------------------
> >             <dependency>
> >                 <groupId>org.junit</groupId>
> >                 <artifactId>junit-bom</artifactId>
> >                 <scope>import</scope>
> >                 <type>pom</type>
> >                 <version>5.8.2</version>
> >             </dependency>
> >             <!-- Spring Dependencies -->
> >             <dependency>
> >               <groupId>org.springframework.boot</groupId>
> >               <artifactId>spring-boot-dependencies</artifactId>
> >               <version>${spring-boot.version}</version>
> >               <type>pom</type>
> >               <scope>import</scope>
> >             </dependency>
> > --------------------
> > Do I add an exclusion to one or both of these?
> >
> > On Fri, Jun 17, 2022 at 11:37 AM Slawomir Jaranowski <
> > s.jaranow...@gmail.com>
> > wrote:
> >
> > > Do you have on your classpath - junit-platform-runner?
> > > Please remove it.
> > >
> > >
> > > pt., 17 cze 2022 o 20:23 David Karr <davidmichaelk...@gmail.com>
> > > napisał(a):
> > >
> > > > I'm posting a new note, as this might be a different issue.
> > > >
> > > > I recently got good advice on this list about how to properly specify
> > the
> > > > version overrides for the junit-bom artifacts.  When I implemented
> > that,
> > > I
> > > > saw that I was consistently getting the correct versions for those
> > > > artifacts.
> > > >
> > > > However, I'm now confused by the behavior that I'm seeing from
> > > Surefire.  I
> > > > currently have a mix of JUnit 4 and JUnit 5 tests.  I'm pretty sure
> > that
> > > I
> > > > had this working before, but now I see that it is not running any of
> > the
> > > > JUnit 5 tests.
> > > >
> > > > Note the following excerpt from my build:
> > > > -------------------
> > > > [INFO] --- maven-surefire-plugin:3.0.0-M7:test (default-test) @
> > > > PlatformPilotMs ---
> > > > [INFO] Using auto detected provider
> > > > org.apache.maven.surefire.junit4.JUnit4Provider
> > > > ------------------
> > > >
> > > > I'm using the very latest M version, as that resolves other issues
> > we've
> > > > been having. When I look to see what tests were executed, I see that
> it
> > > > doesn't include any of my JUnit 5 tests.
> > > >
> > > > I ran "mvn dependency:tree" to verify what versions of JUnit are in
> the
> > > > classpath, and it has BOTH JUnit 4.13 and junit-platform 1.8.2 and
> > > > junit-jupiter 5.8.2.  The surefire doc page says "Surefire normally
> > > > automatically selects which test-framework provider to use based on
> the
> > > > version of TestNG/JUnit present in your project's classpath". Is the
> > fact
> > > > that both are in the classpath causing this? Am I going to have to
> > > manually
> > > > specify both the junit 4 and junit 5 providers in the surefire
> > > > dependencies? That is additionally annoying as I also have to
> > redundantly
> > > > specify the versions of those artifacts (I tried not specifying a
> > > version,
> > > > and it complained).
> > > >
> > >
> > >
> > > --
> > > Sławomir Jaranowski
> > >
> >
>
>
> --
> Sławomir Jaranowski
>

Reply via email to