[
https://issues.apache.org/jira/browse/TINKERPOP-1052?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15063924#comment-15063924
]
Martin Häusler commented on TINKERPOP-1052:
-------------------------------------------
In my humble opinion, the "specific" and "method" properties should always be
optional. If nothing is given by the user, assume "all". Having to specify this
manually is an effort that could easily be avoided.
> @Graph.OptOut causes Exception during Suite setup
> -------------------------------------------------
>
> Key: TINKERPOP-1052
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1052
> Project: TinkerPop
> Issue Type: Bug
> Components: test-suite
> Affects Versions: 3.0.2-incubating
> Environment: Java 8, Windows 10 x64, Gradle (Dependencies)
> Reporter: Martin Häusler
> Assignee: stephen mallette
> Priority: Minor
> Fix For: 3.1.1-incubating
>
> Original Estimate: 4h
> Remaining Estimate: 4h
>
> According to the documentation, adding the following annotation to my graph
> class should allow me to opt-out from I/O-Tests, right?
> {code}
> @Graph.OptOut(test = "org.apache.tinkerpop.gremlin.structure.io.IoGraphTest",
> method = "*", reason = "IO Isuses on windows")
> {code}
> ... well, unfortunately starting the test suite with this annotation creates
> the following exception (cancelling the execution of the suite as a whole):
> {code}
> java.lang.NullPointerException
> at java.lang.Class.isAssignableFrom(Native Method)
> at
> org.apache.tinkerpop.gremlin.AbstractGremlinSuite$OptOutTestFilter.lambda$shouldRun$15(AbstractGremlinSuite.java:289)
> at java.util.stream.MatchOps$1MatchSink.accept(Unknown Source)
> at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
> at java.util.ArrayList$ArrayListSpliterator.tryAdvance(Unknown Source)
> at java.util.stream.ReferencePipeline.forEachWithCancel(Unknown Source)
> at java.util.stream.AbstractPipeline.copyIntoWithCancel(Unknown Source)
> at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
> at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
> at java.util.stream.MatchOps$MatchOp.evaluateSequential(Unknown Source)
> at java.util.stream.MatchOps$MatchOp.evaluateSequential(Unknown Source)
> at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
> at java.util.stream.ReferencePipeline.anyMatch(Unknown Source)
> at
> org.apache.tinkerpop.gremlin.AbstractGremlinSuite$OptOutTestFilter.shouldRun(AbstractGremlinSuite.java:289)
> at
> org.apache.tinkerpop.gremlin.AbstractGremlinSuite$OptOutTestFilter.shouldRun(AbstractGremlinSuite.java:301)
> at org.junit.runners.ParentRunner.shouldRun(ParentRunner.java:434)
> at org.junit.runners.ParentRunner.filter(ParentRunner.java:382)
> at org.junit.runner.manipulation.Filter.apply(Filter.java:97)
> at org.junit.runners.ParentRunner.filter(ParentRunner.java:384)
> at
> org.apache.tinkerpop.gremlin.AbstractGremlinSuite.registerOptOuts(AbstractGremlinSuite.java:136)
> at
> org.apache.tinkerpop.gremlin.AbstractGremlinSuite.<init>(AbstractGremlinSuite.java:93)
> at
> org.apache.tinkerpop.gremlin.structure.StructureStandardSuite.<init>(StructureStandardSuite.java:111)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
> at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown
> Source)
> at java.lang.reflect.Constructor.newInstance(Unknown Source)
> at
> org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:107)
> at
> org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
> at
> org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
> at
> org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
> at
> org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
> at
> org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33)
> at
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:84)
> at
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:70)
> at
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:43)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
> {code}
> Here's my full graph interface declaration, for reference:
> {code}
> @Graph.OptIn(Graph.OptIn.SUITE_STRUCTURE_STANDARD)
> @Graph.OptOut(test = "org.apache.tinkerpop.gremlin.structure.io.IoGraphTest",
> method = "*", reason = "IO Isuses on windows")
> @GraphFactoryClass(MyGraphFactoryImpl.class)
> public interface MyGraph extends Graph {
> // ...
> }
> {code}
> ... and my test suite declaration:
> {code}
> @RunWith(StructureStandardSuite.class)
> @GraphProviderClass(provider = MyGraphProvider.class, graph = MyGraph.class)
> public class MyGraphStructureStandardTestSuite {
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)