Inline.

On Fri, Jul 8, 2022 at 8:17 AM Karl Heinz Marbaise <khmarba...@gmx.de>
wrote:

> Hi,
>
> On 08.07.22 16:18, David Karr wrote:
> > I had gotten help here with our JUnit 5 transition, and I thought I had
> it
> > all working, but now I see that I'm back to the state where our JUnit 5
> > test suites are being ignored.
> >
> >>From what I understood, I had to ensure that "junit-platform-runner" was
> > excluded as a dependency.  What I have seems to have done this, but only
> > halfway.  The "dependency-tree" doesn't have that artifact.  However,
> when
> > I generated the effective pom, I DID see that artifact. I'm not sure what
> > that means.
> >
> > I run this command line:
> >
> >      mvn -U -Dtest=ComponentTestSuite test
> >
> > Here's an excerpt of the output:
> > ------------------
> > [INFO] --- maven-surefire-plugin:3.0.0-M7:test (default-test) @
> > PlatformPilotMs ---
> > [INFO] Using auto detected provider
> > org.apache.maven.surefire.junitplatform.JUnitPlatformProvider
> > [INFO]
> > [INFO] -------------------------------------------------------
> > [INFO]  T E S T S
> > [INFO] -------------------------------------------------------
> > [INFO]
> > [INFO] Results:
> > [INFO]
> > [INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
> > ------------------
> >
> > As you can see, I'm using v3.0.0-M7 of Surefire. I'm using v1.8.2 of
> > junit-platform, and v5.8.2 of junit-jupiter.
> >
> > I've designed a parent pom hierarchy that looks like this:
> >
> > sdk-java-parent:
> >    dependencyManagement includes "ext-bom" pom with scope "import"
> >    dependencies has a block like this:
> > --------------
> > <dependency>
> >       <groupId>...</groupId>
> >       <artifactId>seed-sdk-core</artifactId>
> >              <exclusions>
> >                  <exclusion>
> >                      <groupId>org.junit.platform</groupId>
> >                      <artifactId>junit-platform-runner</artifactId>
> >                  </exclusion>
> >              </exclusions>
> >      </dependency>
> > --------------
> >
> > The effective pom also has this:
> > ----------------------
> > <plugin>
> >      <groupId>org.apache.maven.plugins</groupId>
> >      <artifactId>maven-surefire-plugin</artifactId>
> >      <version>3.0.0-M7</version>
> >      <configuration>
> >                      <forkCount>1</forkCount>
> >                      <reuseForks>false</reuseForks>
> >
> > <redirectTestOutputToFile>true</redirectTestOutputToFile>
> >      <argLine>${surefireArgLine}</argLine>
> >      <skipTests>false</skipTests>
> >      <excludes>
> >          <exclude>**/contract/*.java</exclude>
> >          <exclude>**/integration/*.java</exclude>
> >          <exclude>**/component/*.java</exclude>
> >      </excludes>
> >      </configuration>
> > </plugin>
> > -------------------
> >
> > What could we be missing?
> >
>
>
> Which dependencies do you have defined for running junit jupiter tests?
>

These are the resulting junit-jupiter dependencies in the effective pom:

        junit-jupiter
        junit-jupiter-api
        junit-jupiter-engine
        junit-jupiter-migrationsupport
        junit-jupiter-params

And these are the resulting junit-platform dependencies (still not sure why
junit-platform-runner is in here, when I'm excluding it AND it doesn't
appear in dependency:tree):

        junit-platform-commons
        junit-platform-console
        junit-platform-engine
        junit-platform-jfr
        junit-platform-launcher
        junit-platform-reporting
        junit-platform-runner
        junit-platform-suite
        junit-platform-suite-api
        junit-platform-suite-commons
        junit-platform-suite-engine
        junit-platform-testkit

>
> Why do you think you need to exclude junit jupiter runner?
>

Not jupiter, but "junit-platform-runner". Looking at the message history, I
see that "Slawomir Jaranowski" at least, had said this.


> Do you use the dependency junit-jupiter-engine as a dependency:
>
> Are you using @Suite annotation of JUnit Jupiter?
>
> Have you defined a class for example `ComponentTestSuite` like this:
>
> @Suite
> @SelectPackages("package.xxx")
> @IncludeClassNamePatterns(".*Pattern")
> class SuiteDemoTests {
>
> }..
>

This is an excerpt of my test suite:
------------
import org.junit.platform.suite.api.SelectClasses;
import org.junit.platform.suite.api.Suite;

@Suite
@SelectClasses({...
----------

>
>
> If you like to run suites you have to have two dependencies:
>
>      <dependency>
>        <groupId>org.junit.platform</groupId>
>        <artifactId>junit-platform-suite-engine</artifactId>
>        <scope>test</scope>
>      </dependency>
>      <dependency>
>        <groupId>org.junit.jupiter</groupId>
>        <artifactId>junit-jupiter-engine</artifactId>
>        <scope>test</scope>
>      </dependency>
>
>
> Kind regards
> Karl Heinz Marbaise
>

Reply via email to