scalatest / scalatestplus-junit5

Apache License 2.0
4 stars 4 forks source link

Discovery Fix #12

Closed cheeseng closed 7 months ago

cheeseng commented 7 months ago

Added the missing test for empty public constructor when detecting Suite in discovery.

tnielens commented 7 months ago

We do still face discovery issues with abstract classes.

abstract class MyBaseClass
    extends AnyFlatSpecLike with Matchers with BeforeAndAfter with OptionValues with Eventually with Logging
Caused by: org.junit.platform.commons.JUnitException: ClassSelector [className = 'mypackage.MyBaseClass', classLoader = sun.misc.Launcher$AppClassLoader@73d16e93] resolution failed
    at org.junit.platform.launcher.listeners.discovery.AbortOnFailureLauncherDiscoveryListener.selectorProcessed(AbortOnFailureLauncherDiscoveryListener.java:39)
    at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.resolveCompletely(EngineDiscoveryRequestResolution.java:103)
    at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.run(EngineDiscoveryRequestResolution.java:83)
    at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolver.resolve(EngineDiscoveryRequestResolver.java:113)
    at org.scalatestplus.junit5.ScalaTestEngine.discover(ScalaTestEngine.scala:230)
    at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discoverEngineRoot(EngineDiscoveryOrchestrator.java:152)
    ... 28 more
Caused by: java.lang.InstantiationException
    at sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(InstantiationExceptionConstructorAccessorImpl.java:48)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.lang.Class.newInstance(Class.java:442)
    at org.scalatestplus.junit5.ScalaTestClassDescriptor.suite$lzycompute(ScalaTestClassDescriptor.scala:40)
    at org.scalatestplus.junit5.ScalaTestClassDescriptor.suite(ScalaTestClassDescriptor.scala:37)
    at org.scalatestplus.junit5.ScalaTestClassDescriptor.<init>(ScalaTestClassDescriptor.scala:45)
    at org.scalatestplus.junit5.ScalaTestEngine$$anon$6$$anon$7.apply(ScalaTestEngine.scala:135)
    at org.scalatestplus.junit5.ScalaTestEngine$$anon$6$$anon$7.apply(ScalaTestEngine.scala:130)
    at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution$DefaultContext.createAndAdd(EngineDiscoveryRequestResolution.java:250)
    at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution$DefaultContext.addToParent(EngineDiscoveryRequestResolution.java:213)
    at org.scalatestplus.junit5.ScalaTestEngine$$anon$6.resolve(ScalaTestEngine.scala:130)
    at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.lambda$resolve$2(EngineDiscoveryRequestResolution.java:135)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1361)
    at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
    at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:499)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:486)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
    at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:531)
    at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.resolve(EngineDiscoveryRequestResolution.java:189)
    at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.resolve(EngineDiscoveryRequestResolution.java:126)
    at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.resolveCompletely(EngineDiscoveryRequestResolution.java:92)
    ... 32 more
cheeseng commented 7 months ago

@tnielens I added another check for abstract class:

https://github.com/scalatest/scalatestplus-junit5/pull/12/commits/f59022474214f2414858db47c43117ed34520b74

Thanks for pointing out!