maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Patrick M.J. Roth (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MPLUGINTESTING-45) Use of MojoRule causes Guice injection error
Date Tue, 01 Sep 2015 07:01:45 GMT

    [ https://issues.apache.org/jira/browse/MPLUGINTESTING-45?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14724888#comment-14724888
] 

Patrick M.J. Roth commented on MPLUGINTESTING-45:
-------------------------------------------------

Got the same with 
•Maven 3.2.5
•maven-plugin-testing-harness version 3.2.0
•JUnit 4.12
@Sam: have you found a solution?

> Use of MojoRule causes Guice injection error
> --------------------------------------------
>
>                 Key: MPLUGINTESTING-45
>                 URL: https://issues.apache.org/jira/browse/MPLUGINTESTING-45
>             Project: Maven Plugin Testing
>          Issue Type: Bug
>            Reporter: Sam Corbett
>
> I'm trying to write some tests for a plugin. I am using:
> * Maven version 3.2.3
> * maven-plugin-testing-harness version 3.2.0
> * JUnit version 4.12
> I'm following the instructions at http://maven.apache.org/plugin-testing/maven-plugin-testing-harness/getting-started/index.html
that may or may not be out of date.
> Any use of the {{MojoRule}} class causes all tests to fail with a Guice injection error.
> For example, this useless class:
> {code}
> package io.brooklyn.maven;
> import org.apache.maven.plugin.testing.MojoRule;
> import org.junit.Rule;
> import org.junit.Test;
> public class FakeTest {
>     @Rule
>     public MojoRule mojoRule = new MojoRule() {
>         @Override
>         protected void after() {
>             super.after();
>         }
>         @Override
>         protected void before() throws Throwable {
>             super.before();
>         }
>     };
>     @Test
>     public void testNothing() {
>     }
> }
> {code}
> fails with:
> {code}
> Running io.brooklyn.maven.FakeTest
> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.04 sec <<<
FAILURE!
> testNothing(io.brooklyn.maven.FakeTest)  Time elapsed: 0.934 sec  <<< ERROR!
> com.google.inject.CreationException: Unable to create injector, see the following errors:
> 1) Scope org.apache.maven.execution.scope.internal.MojoExecutionScope@eac4a5f is already
bound to org.apache.maven.execution.scope.MojoExecutionScoped at org.apache.maven.plugin.
> testing.AbstractMojoTestCase$1.configure(AbstractMojoTestCase.java:236) (via modules:
org.eclipse.sisu.wire.WireModule -> org.codehaus.plexus.DefaultPlexusContainer$BootModule
->
>  org.apache.maven.plugin.testing.AbstractMojoTestCase$1).
>  Cannot bind org.apache.maven.execution.scope.internal.MojoExecutionScope@5146aa7f.
>   at ClassRealm[plexus.core, parent: null] (via modules: org.eclipse.sisu.wire.WireModule
-> org.eclipse.sisu.plexus.PlexusBindingModule -> org.apache.maven.execution.scope.inter
> nal.MojoExecutionScopeCoreModule)
> 1 error
>         at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:448)
>         at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:155)
>         at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107)
>         at com.google.inject.Guice.createInjector(Guice.java:96)
>         at com.google.inject.Guice.createInjector(Guice.java:73)
>         at com.google.inject.Guice.createInjector(Guice.java:62)
>         at org.codehaus.plexus.DefaultPlexusContainer.addPlexusInjector(DefaultPlexusContainer.java:481)
>         at org.codehaus.plexus.DefaultPlexusContainer.<init>(DefaultPlexusContainer.java:206)
>         at org.apache.maven.plugin.testing.AbstractMojoTestCase.setupContainer(AbstractMojoTestCase.java:243)
>         at org.apache.maven.plugin.testing.AbstractMojoTestCase.getContainer(AbstractMojoTestCase.java:277)
>         at org.apache.maven.plugin.testing.AbstractMojoTestCase.setUp(AbstractMojoTestCase.java:118)
>         at org.apache.maven.plugin.testing.MojoRule$2.evaluate(MojoRule.java:304)
>         at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>         at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>         at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>         at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>         at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>         at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>         at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>         at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>         at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>         at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>         at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
>         at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
>         at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:606)
>         at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
>         at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
>         at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
>         at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
>         at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message