Mittwoch, 5. Juni 2013

Arquillian – real world usage

Since a  few days we are using Arquillian. The first tests are good, because we tried it in a separated project. This you can see from my blog entry But.. I found some problems.

The demo project is a single module maven project. The real live project is a multi-maven project. So I started to fill the parent pom.xml with the dependencies, went to the child module and started with my first jUnit. A quite simple CDI.
As you can see, it is the LoggerProducer.

The jUnit test looks like this one:
As you can see, nothing complicated. The test is running with a weld-ee container. After this, I thought that we can start with the next jUnit test. A simple EJB test would be the first one using a jboss managed container.
First step is writing the deployment like this:
But what happened? The jUnit test failed with the error that to many Service-implementations are available.
After a little searching it shows..  not to many Services.. No Service was found.. But it was not able to run.
So I changed a few things.
1) If you have a multi module project you have to put in every pom.xml the dependencies incl the dep-management. Not nice, but the only way to get it running in the moment.
2) You have to read every pom.xml you need… only reading the parent pom.xml is not enough. I hope this will change in the future.
3) Creating from a ready war is more stable..

Finally the full create deployment class will look like this.

With this you can create the jUnit deployment in the way here shown..