2013-02-06 33 views
11

Tôi đã cố gắng để chạy ví dụ Arquillian nàyDeployableContainer phải được xác định lỗi khi chạy Arquillian

https://github.com/arquillian/arquillian-examples/tree/master/arquillian-tutorial

Không có lỗi khi nhập khẩu trong Eclipse

Tuy nhiên tôi nhận được lỗi này khi tôi chạy như JUnit thử nghiệm:

java.lang.RuntimeException: Could not create new instance of class org.jboss.arquillian.test.impl.EventTestRunnerAdaptor 
    at org.jboss.arquillian.test.spi.SecurityActions.newInstance(SecurityActions.java:160) 
    at org.jboss.arquillian.test.spi.SecurityActions.newInstance(SecurityActions.java:111) 
    at org.jboss.arquillian.test.spi.SecurityActions.newInstance(SecurityActions.java:97) 
    at org.jboss.arquillian.test.spi.TestRunnerAdaptorBuilder.build(TestRunnerAdaptorBuilder.java:52) 
    at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:93) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) 
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 
Caused by: java.lang.reflect.InvocationTargetException 
    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.jboss.arquillian.test.spi.SecurityActions.newInstance(SecurityActions.java:156) 
    ... 10 more 
Caused by: org.jboss.arquillian.container.impl.ContainerCreationException: Could not create Container jbossas-managed 
    at org.jboss.arquillian.container.impl.LocalContainerRegistry.create(LocalContainerRegistry.java:85) 
    at org.jboss.arquillian.container.impl.client.container.ContainerRegistryCreator.createRegistry(ContainerRegistryCreator.java:76) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) 
    at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) 
    at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) 
    at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:135) 
    at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:115) 
    at org.jboss.arquillian.core.impl.ManagerImpl.bindAndFire(ManagerImpl.java:236) 
    at org.jboss.arquillian.core.impl.InstanceImpl.set(InstanceImpl.java:74) 
    at org.jboss.arquillian.config.impl.extension.ConfigurationRegistrar.loadConfiguration(ConfigurationRegistrar.java:68) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) 
    at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) 
    at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) 
    at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:135) 
    at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:115) 
    at org.jboss.arquillian.core.impl.ManagerImpl.start(ManagerImpl.java:261) 
    at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.<init>(EventTestRunnerAdaptor.java:56) 
    ... 15 more 
Caused by: java.lang.IllegalArgumentException: DeployableContainer must be specified 
    at org.jboss.arquillian.core.spi.Validate.notNull(Validate.java:44) 
    at org.jboss.arquillian.container.impl.ContainerImpl.<init>(ContainerImpl.java:71) 
    at org.jboss.arquillian.container.impl.LocalContainerRegistry.create(LocalContainerRegistry.java:76) 
    ... 39 more 
+0

Thiết lập JBoss của bạn trên máy trạm mà bạn đang thử này như thế nào? Bạn đã cấu hình biến môi trường JBOSS_HOME chưa? – Perception

+0

có% JBOSS_HOME% được cấu hình trong máy tính của tôi – xybrek

Trả lời

19

các POM dự án xác định một loạt các tiểu sử - arquillian-weld-ee-embedded, arquillian-glassfish-embeddedarquillian-jbossas-managed. Không có cái nào trong số chúng được kích hoạt theo mặc định. Bạn cần phải kích hoạt một trong số này để chạy các thử nghiệm, vì các cấu hình mang trong bộ điều hợp container Arquillian.

Nếu không có bộ điều hợp vùng chứa trong đường dẫn lớp, bạn có thể thấy ngoại lệ java.lang.IllegalArgumentException với thông báo "DeployableContainer phải được chỉ định".

+0

Phải, tôi đã tìm ra điều này rồi. – xybrek

+0

Bạn có bất kỳ ý tưởng nào về việc khắc phục vấn đề đó với gradle không ?, Ý tôi là tôi nên định nghĩa DeployableContainer như thế nào? – Reza

+0

Câu trả lời hay, cảm ơn rất nhiều! Hãy để tôi cụ thể hơn và thêm rằng vấn đề là ở đây (đối với tôi nó như sau) my-favorite-profile org.jboss.arquillian.container arquillian-wlp-managed-8.5 ${arquillian.version}

3

Dường như mô tả QuickStrat khá mơ hồ. Để kích hoạt arq-jboss-remote hồ sơ theo mặc định bạn chỉ có thể thêm:

<activation> 
     <activeByDefault>true</activeByDefault> 
</activation> 

vào định nghĩa hồ sơ này trong một dự án pom.xml.

Các vấn đề liên quan