2011-05-05 5 views
1

Я новичок в Arquillian и хочу, чтобы какое-то базовое тестирование работало (вводите bean-компонент и утверждайте, что он что-то делает).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, менеджер боб является недействительным. Похоже, я пропускаю шаг, но из примеров, похоже, это все, что мне нужно.

Любые идеи?

Walter

ответ

2

Он смотрит на меня, как пытаются использовать последний снимок. В настоящее время реквизиция Arquillian реорганизуется, поэтому, если у вас нет конкретной причины для отслеживания HEAD, я рекомендую использовать Alpha5.

Вы можете увидеть рабочие примеры CDI в витрине Arquillian. http://github.com/arquillian/arquillian-showcase

+0

Прохладный, спасибо большое, я дам ему вихрь. – Walter

+0

Отлично, вот и все. – Walter

1

У меня была аналогичная проблема с arquillian 1.0.4.Final. Получение "java.lang.RuntimeException: не может вводить члены" плюс stacktrace. Это на тестах, запущенных с года. Тесты JUnit работали, если вы вызывали тестовые классы один за другим, но не удались, если вы вызывали все тесты, выполнив тест Junit всего модуля или выполнив тест сайта maven для всего проекта. Неважно, чтобы решить проблему, но сбросив версию arquillian обратно в 1.0.3. Final!

Смежные вопросы