0

I tried to run a arquillian test in eclipse instead of running by mvn. Under maven, everything is ok, but from eclipse, it always give me exceptions:

org.jboss.arquillian.container.spi.ConfigurationException: jbossHome 'null' must exist at org.jboss.arquillian.container.spi.client.deployment.Validate.configurationDirectoryExists(Validate.java:139) at org.jboss.as.arquillian.container.DistributionContainerConfiguration.validate(DistributionContainerConfiguration.java:103) at org.jboss.as.arquillian.container.managed.ManagedContainerConfiguration.validate(ManagedContainerConfiguration.java:65) at org.jboss.arquillian.container.impl.ContainerImpl.createDeployableConfiguration(ContainerImpl.java:115) at org.jboss.arquillian.container.impl.ContainerImpl.setup(ContainerImpl.java:181) at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$7.perform(ContainerLifecycleController.java:149) at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$7.perform(ContainerLifecycleController.java:145) at ....

I tried to debug this problem, from arquillian class, I didn't find it was trying to read arquilian.xml, under arquillian class

public class ManagedContainerConfiguration extends DistributionContainerConfiguration {

    /**
     * Default timeout value waiting on ports is 10 seconds
     */
    private static final Integer DEFAULT_VALUE_WAIT_FOR_PORTS_TIMEOUT_SECONDS = 10;

    private String javaVmArguments = System.getProperty("jboss.options", "-Xmx512m -XX:MaxPermSize=128m");

    private int startupTimeoutInSeconds = 60;

    private boolean outputToConsole = true;

from this class, for managed container test, arquillian gives some default configuration, but how can I use my configuration in arquillian.xml to run JUNIT test?

I've already put arquillian.xml under src/test/resources folder.

HaveNoDisplayName
  • 8,291
  • 106
  • 37
  • 47
alisondong
  • 151
  • 1
  • 1
  • 6

2 Answers2

1

When running an arquillian test like:

@RunWith(Arquillian.class)
public class ArquillianBasicTest {
...
}

with a JBOSS container (wildly/jboss as) the environment variable JBOSS_HOME is used by arquillian to find your container installation. Running this test inside eclipse the environment variable could not be read correctly. To overcome this error just define it inside the junit configuration dialog.

Example of setting

tab test:
    Project: game
    Test class: book.games.arquillian.ArquillianBasicTest

tab environment:
    Variable     Value
    JBOSS_HOME   /System/Volumes/Data/Ext/jboss/install

See also Environment variables in Eclipse

user2862981
  • 274
  • 1
  • 8
0

it should be evaluating the arquillian.xml anyway ... you can try to just set your JBOSS_HOME env variable. Another suggestion if you really want to execute tests from an IDE is to use IntelliJ. My experience showed, that pretty everything runs better in IntelliJ also the tests.

MeBNoah
  • 165
  • 14