maven-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Romain Manni-Bucau <rmannibu...@gmail.com>
Subject Re: issue with junit 5 integration
Date Wed, 05 Sep 2018 07:15:56 GMT
Me too but
https://github.com/apache/maven-surefire/blob/d88ce541f3ba78a12422bdfa35c98cfb5783f9ea/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireDependencyResolver.java#L142
only handles a single artifact whereas junit5 relies on N > 1 artifacts for
its stack.

Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://rmannibucau.metawerx.net/> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
<https://www.packtpub.com/application-development/java-ee-8-high-performance>


Le mer. 5 sept. 2018 à 08:23, Dan Tran <dantran@gmail.com> a écrit :

> " surefire provider forces 1.2.0" this is not good :-)  i thought surefire
> auto detect first one available in classpath
>
> On Tue, Sep 4, 2018 at 11:06 PM Romain Manni-Bucau <rmannibucau@gmail.com>
> wrote:
>
> > jupiter ;)
> >
> > junit 5 is not jupiter but platform+ engine*s* so it must detect the full
> > stack and not just the default. A first step can be to detect
> > platform+jupiter+engine but I guess we will get spock, cucumber etc
> engine
> > quickly so being generic can be worth it. In my case I have
> vintage-engine
> > - cause i have junit4 and junit5 extensions and it is broken cause
> vintage
> > uses platform method of the 1.3.0 and the surefire provider forces 1.2.0.
> >
> > In my proposal, the project dependencies (likely scope test on user side
> or
> > compile for engine/extension writers) is used and the plugin can
> > override/force some dependencies if needed. Alternative surefire could
> get
> > a specific config for that, not sure it does worth it.
> >
> > Hope it is clearer.
> >
> > Romain Manni-Bucau
> > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > <https://rmannibucau.metawerx.net/> | Old Blog
> > <http://rmannibucau.wordpress.com> | Github <
> > https://github.com/rmannibucau> |
> > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> > <
> >
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> > >
> >
> >
> > Le mer. 5 sept. 2018 à 07:41, Dan Tran <dantran@gmail.com> a écrit :
> >
> > > Odd, I am under impression  surefire auto detect  junit-jupiter-engine
> > at
> > > runtime
> > >
> > > am I missing something?
> > >
> > > -D
> > >
> > > On Tue, Sep 4, 2018 at 10:08 PM Romain Manni-Bucau <
> > rmannibucau@gmail.com>
> > > wrote:
> > >
> > > > It does _NOT_ work and as mentionned you can test on meecrowave
> trying
> > to
> > > > upgrade the version in junit module.
> > > >
> > > > The test classpath build ignores project and plugin dependencies. It
> > > faked
> > > > working until 5.3.0-RC1 cause no breakage was visible.
> > > >
> > > > When testing, dont forget to use jupiter, vintage engines + platform
> > > stack,
> > > > otherwise code is compatible with 1.2 which gets loaded. The doc
> > ignores
> > > > the platform and vintage engine and guess it was not tested at all
> > > checking
> > > > the code ;). Not a big deal since it is a "first" release but we
> should
> > > be
> > > > ablz to get it fixed quickly.
> > > >
> > > >
> > > > Le mar. 4 sept. 2018 23:51, Olivier Lamy <olamy@apache.org> a écrit
> :
> > > >
> > > > > Ok perso I don't mind (it just need to be documented)
> > > > > But the issue is: users are used to simply upgrade their junit
> > > > dependency.
> > > > >
> > > > >
> > > > > On Wed, 5 Sep 2018 at 07:37, Christian Stein <sormuras@gmail.com>
> > > wrote:
> > > > >
> > > > > > No, it works with Surefire 2.22.0 and JUnit 5.3.
> > > > > >
> > > > > > Just add (or move) the test-runtime dependencies to the Surefire
> > > plugin
> > > > > > element:
> > > > > >
> > > > > > <build>
> > > > > >    <plugins>
> > > > > >       <!-- JUnit 5 requires Surefire version 2.22.0 or higher
-->
> > > > > >       <plugin>
> > > > > >          <artifactId>maven-surefire-plugin</artifactId>
> > > > > >          <version>2.22.0</version>
> > > > > >          <dependencies>
> > > > > >                    <dependency>
> > > > > >                        <groupId>org.junit.jupiter</groupId>
> > > > > >
> > <artifactId>junit-jupiter-engine</artifactId>
> > > > > >                        <version>5.3.0</version>
> > > > > >                    </dependency>
> > > > > >          </dependencies>
> > > > > >       </plugin>
> > > > > >    </plugins>
> > > > > > </build>
> > > > > >
> > > > > >
> > > > > > Just checking our sample builds over at JUnit 5. Which do _NOT_
> do
> > > this
> > > > > at
> > > > > > the moment.
> > > > > >
> > > > > >
> > > > > >
> > > > > > On Tue, Sep 4, 2018 at 11:32 PM Olivier Lamy <olamy@apache.org>
> > > wrote:
> > > > > >
> > > > > > > Hi
> > > > > > > very embarrassing issue which probably worth a quick release!
> > > > > > > Can you create a jira?
> > > > > > > As junit 5.3.0 has just been released,  I might be happy
to cut
> > > > 2.22.1
> > > > > > very
> > > > > > > quickly with only this fix.
> > > > > > > others wdyt?
> > > > > > >
> > > > > > >
> > > > > > > On Wed, 5 Sep 2018 at 06:46, Romain Manni-Bucau <
> > > > rmannibucau@gmail.com
> > > > > >
> > > > > > > wrote:
> > > > > > >
> > > > > > > > Hi guys,
> > > > > > > >
> > > > > > > > Jira seems down so sending a mail.
> > > > > > > >
> > > > > > > > I wanted to upgrade Meecrowave to JUnit 5.3 since
it is out
> > but I
> > > > > > > realized
> > > > > > > > the way surefire provider was developped for JUnit
5 was
> > forcing
> > > > the
> > > > > > > > junit-platform-engine even adding it manually in the
test
> > > > > dependencies
> > > > > > or
> > > > > > > > plugin dependencies.
> > > > > > > >
> > > > > > > > Side note: I didn't investigated other providers but
I guess
> it
> > > is
> > > > > the
> > > > > > > > exact same but the API breakage are happening less
often.
> > > > > > > >
> > > > > > > > I therefore created a PR to fix that ->
> > > > > > > > https://github.com/apache/maven-surefire/pull/193
> > > > > > > >
> > > > > > > > Note: I didn't upgrade the JUnit 5 version in the
same
> release
> > > but
> > > > it
> > > > > > > > should probably be done too in another commit/PR.
> > > > > > > >
> > > > > > > > I wonder if you have release plans which could include
this.
> In
> > > > terms
> > > > > > of
> > > > > > > > issues I have in mind the other thing about JUnit
5 which
> would
> > > be
> > > > > > great
> > > > > > > to
> > > > > > > > add is the support for display names instead of using
the
> > > > class+test
> > > > > > > names
> > > > > > > > in the logs and reports but this is less mandatory
than
> > previous
> > > > one
> > > > > > > which
> > > > > > > > fails with a NoSuchMethod error when using vintage
engine.
> > > > > > > >
> > > > > > > > Romain Manni-Bucau
> > > > > > > > @rmannibucau <https://twitter.com/rmannibucau>
|  Blog
> > > > > > > > <https://rmannibucau.metawerx.net/> | Old Blog
> > > > > > > > <http://rmannibucau.wordpress.com> | Github
<
> > > > > > > > https://github.com/rmannibucau> |
> > > > > > > > LinkedIn <https://www.linkedin.com/in/rmannibucau>
| Book
> > > > > > > > <
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > Olivier Lamy
> > > > > > > http://twitter.com/olamy | http://linkedin.com/in/olamy
> > > > > > >
> > > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Olivier Lamy
> > > > > http://twitter.com/olamy | http://linkedin.com/in/olamy
> > > > >
> > > >
> > >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message