[SUREFIRE] JUnit 5 support - current state and next steps

2017-06-08 Thread Benedikt Ritter
Hello,

first of all, I’d like to apologize for not being very active over the past few 
months. I’ve been busy at work and there was ApacheCON… so you know how it is 
:-)

I’d like to take some time to review where we’re standing with JUnit 5 support 
and what we our next steps will be. Currently the whole thing is a little bit 
messed up and I’m pretty much to blame for this:

- we have a junit5 branch, where I started to implement some integration tests 
for JUnit 5 support. There are no code changes to Surefire itself in this 
branch. It just tests that specifying the provider explicitly does work as 
shown in the JUnit docs.
- then we have 3.0-rc1. We have merged the Provider code from the JUnit team 
into this branch. But we don’t have any tests there.
- I’ve created a new PR to get work started on a ProviderInfo implementation to 
enable automatic provider lookup [1]. This way users don’t need to specify the 
provider explicitly anymore.

So what should be our next steps?

I think we should merge the junit5 branch into the 3.0-rc1 branch, so that we 
have the existing integration tests we already implemented in place for getting 
the work on the ProviderInfo started.
Then we will need some time to clean up the integration test project. I think 
it need to be restructured a little bit to make it easier to understand and 
make it possible to run tests against several JUnit versions.
In the end we should be able to verify that all existing JUnit 4 also work with 
the JUnit 5 provider.

@Tibor: Can you merge the junit5 branch to 3.0-rc1 branch? Or should I create a 
PR for this?

Best regards,
Benedikt

[1] https://github.com/apache/maven-surefire/pull/153
-
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org



[GitHub] maven-surefire issue #153: SUREFIRE-1384: ProviderInfo for JUnit Plattform (...

2017-06-08 Thread britter
Github user britter commented on the issue:

https://github.com/apache/maven-surefire/pull/153
  
@marcphilipp this may be of interest for you.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

-
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org



[GitHub] maven-surefire issue #153: SUREFIRE-1384: ProviderInfo for JUnit Plattform (...

2017-06-08 Thread britter
Github user britter commented on the issue:

https://github.com/apache/maven-surefire/pull/153
  
@Tibor17 I'm having problems executing the integration test. When I run 
`mvn -Dit.test=JUnitPlattformIT verify` with Java 8, I get an error on running 
the Integration Test project:

```
Caused by: java.lang.NoClassDefFoundError: 
Lorg/sonatype/aether/RepositorySystemSession;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
at java.lang.Class.getDeclaredFields(Class.java:1916)
at 
com.google.inject.spi.InjectionPoint.getInjectionPoints(InjectionPoint.java:675)
at 
com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:380)
at 
com.google.inject.internal.ConstructorBindingImpl.getInternalDependencies(ConstructorBindingImpl.java:164)
at 
com.google.inject.internal.InjectorImpl.getInternalDependencies(InjectorImpl.java:613)
at 
com.google.inject.internal.InjectorImpl.cleanup(InjectorImpl.java:569)
at 
com.google.inject.internal.InjectorImpl.initializeJitBinding(InjectorImpl.java:555)
at 
com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:884)
at 
com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:805)
at 
com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:282)
at 
com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:214)
at 
com.google.inject.internal.InjectorImpl.getProviderOrThrow(InjectorImpl.java:1006)
at 
com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1038)
at 
com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1001)
at 
com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1051)
at 
org.eclipse.sisu.space.AbstractDeferredClass.get(AbstractDeferredClass.java:48)
at 
com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
at 
com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:53)
at 
com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:65)
at 
com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:115)
at 
com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:133)
at 
com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68)
at 
com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:63)
at 
com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45)
at 
com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016)
at 
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012)
at org.eclipse.sisu.inject.Guice4$1.get(Guice4.java:162)
at org.eclipse.sisu.inject.LazyBeanEntry.getValue(LazyBeanEntry.java:81)
at 
org.eclipse.sisu.plexus.LazyPlexusBean.getValue(LazyPlexusBean.java:51)
at 
org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:263)
at 
org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:255)
at 
org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:519)
at 
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:121)
... 21 more
Caused by: java.lang.ClassNotFoundException: 
org.sonatype.aether.RepositorySystemSession
at 
org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
at 
org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
at 
org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
at 
org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
... 57 more
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, 
please read the following articles:
[ERROR] [Help 1] 
http://cwiki.apache.org/confluence/display/MAVEN/AetherClassNotFound

at org.apache.maven.it.Verifier.executeGoals(Verifier.java:1369)
at 
org.apache.maven.surefire.its.fixture.MavenLauncher.executeCurrentGoals(MavenLauncher.java:299)
... 66 more
```

What am I missing?


---
If your project is 

[GitHub] maven-surefire pull request #153: SUREFIRE-1384: ProviderInfo for JUnit Plat...

2017-06-08 Thread britter
GitHub user britter opened a pull request:

https://github.com/apache/maven-surefire/pull/153

SUREFIRE-1384: ProviderInfo for JUnit Plattform (WIP)

This is Work in Progress!

First take on a JUnitPlattform ProviderInfo, to enable automatic provider 
lookup.

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/britter/maven-surefire 
junitplattform-provider-info

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/maven-surefire/pull/153.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #153


commit 890f1cb8b54c5fa612d3191df0057522f6d9f28a
Author: Benedikt Ritter 
Date:   2017-06-08T12:46:04Z

SUREFIRE-1384: Start implemeting JUnit Plattform ProviderInfo for automatic
provider lookup




---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

-
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org