2011-05-05 2 views
1

저는 Arquillian을 처음 사용하고 있으며 몇 가지 기본 테스트를 수행하고 싶습니다 (빈 삽입 및 무언가를 주장).Arquillian - Weld SE - NullPointerException 발생

예외 :이 프로그램을 실행할 때

------------------------------------------------------------------------------- 
Test set: com.walterjwhite.test.TestCase 
------------------------------------------------------------------------------- 
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.231 sec <<< FAILURE! 
test(com.walterjwhite.test.TestCase) Time elapsed: 0.02 sec <<< ERROR! 
java.lang.RuntimeException: Could not inject members 
    at org.jboss.arquillian.testenricher.cdi.CDIInjectionEnricher.injectClass(CDIInjectionEnricher.java:113) 
    at org.jboss.arquillian.testenricher.cdi.CDIInjectionEnricher.enrich(CDIInjectionEnricher.java:61) 
    at org.jboss.arquillian.impl.enricher.ClientTestEnricher.enrich(ClientTestEnricher.java:61) 
    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:616) 
    at org.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90) 
    at org.jboss.arquillian.impl.core.EventContextImpl.invokeObservers(EventContextImpl.java:98) 
    at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:80) 
    at org.jboss.arquillian.impl.client.ContainerDeploymentContextHandler.createContext(ContainerDeploymentContextHandler.java:133) 
    at org.jboss.arquillian.impl.client.ContainerDeploymentContextHandler.createBeforeContext(ContainerDeploymentContextHandler.java:115) 
    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:616) 
    at org.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90) 
    at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:87) 
    at org.jboss.arquillian.impl.TestContextHandler.createTestContext(TestContextHandler.java:82) 
    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:616) 
    at org.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90) 
    at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:87) 
    at org.jboss.arquillian.impl.TestContextHandler.createClassContext(TestContextHandler.java:68) 
    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:616) 
    at org.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90) 
    at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:87) 
    at org.jboss.arquillian.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:54) 
    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:616) 
    at org.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90) 
    at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:87) 
    at org.jboss.arquillian.impl.core.ManagerImpl.fire(ManagerImpl.java:126) 
    at org.jboss.arquillian.impl.core.ManagerImpl.fire(ManagerImpl.java:106) 
    at org.jboss.arquillian.impl.EventTestRunnerAdaptor.before(EventTestRunnerAdaptor.java:85) 
    at org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:210) 
    at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:303) 
    at org.jboss.arquillian.junit.Arquillian.access$300(Arquillian.java:45) 
    at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:228) 
    at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79) 
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71) 
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49) 
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) 
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) 
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) 
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) 
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) 
    at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:173) 
    at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:303) 
    at org.jboss.arquillian.junit.Arquillian.access$300(Arquillian.java:45) 
    at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:187) 
    at org.junit.runners.ParentRunner.run(ParentRunner.java:236) 
    at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:127) 
    at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:35) 
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:115) 
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:97) 
    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:616) 
    at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) 
    at $Proxy0.invoke(Unknown Source) 
    at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) 
    at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) 
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) 
Caused by: java.lang.NullPointerException 
    at org.jboss.arquillian.testenricher.cdi.CDIInjectionEnricher.getBeanManager(CDIInjectionEnricher.java:51) 
    at org.jboss.arquillian.testenricher.cdi.CDIInjectionEnricher.injectClass(CDIInjectionEnricher.java:100) 
    ... 71 more 

의 TestCase 클래스

@RunWith(Arquillian.class) 
public class TestCase 
{ 
    @Deployment 
    public static JavaArchive createDeployment() 
    { 
     return ShrinkWrap.create(JavaArchive.class).addClasses(TestEntity.class, Implementation.class) 
             .addAsManifestResource(EmptyAsset.INSTANCE, ArchivePaths.create("beans.xml")); 
    } 

    @Inject 
    Implementation implementation; 

    @Test 
    public void test() throws Exception 
    { 
     final TestEntity testEntity = implementation.create(); 

     Assert.assertNotNull(testEntity); 
    } 
} 

, 나는 NullPointerException이 얻을, 빈 매니저는 null입니다. 제가 한 걸음도 빠뜨린 것처럼 보입니다. 그러나 예제에서 볼 때 이것이 꼭 필요한 것 같습니다.

아이디어가 있으십니까?

월터

답변

2

최신 스냅 샷을 사용하고있는 것처럼 보입니다. 현재 Arquillian 저장소가 재구성 중이므로 HEAD 추적에 대한 특별한 이유가 없으면 Alpha5를 사용하는 것이 좋습니다.

Arquillian 쇼케이스에서 작동하는 CDI 예를 볼 수 있습니다. http://github.com/arquillian/arquillian-showcase

+0

멋지다, 고마워. 나는 그것을 소용돌이 떨게 할 것이다. – Walter

+0

완벽했습니다. – Walter

1

나는 Arkillian 1.0.4.Final과 비슷한 문제가있었습니다. "java.lang.RuntimeException : 멤버를 주입 할 수 없습니다"및 스택 추적을 얻습니다. 1 년이 지난 지금 실행중인 테스트입니다. 테스트 클래스를 하나씩 호출하면 JUnit 테스트가 작동하지만 전체 모듈에 대해 Junit 테스트를 수행하거나 전체 프로젝트에 대한 maven 사이트 테스트를 수행하여 모든 테스트를 호출하면 실패합니다. 문제는 해결할 수 있지만 arquillian 버전을 1.0.3으로 다시 설정하십시오. 최종!