Arquillian Core 1.1.5.Final Released

Since we wrote this post we didn't laze around. Check our latest announcement.

The Arquillian team is proud to announce the 1.1.5.Final release of the Arquillian Core component!

1.1.4.Final had some nasty bugs in it, 1.1.5.Final should have cleared these up.

What’s fixed in 1.1.5.Final?

Fixed false positives with JUnit from 1.1.4.Final

Arquillian Core 1.1.4.Final had a nasty bug where it would ‘erase’ some special exception cases that could happen In Container, that gave the Client side the wrong result.

This has now been fixed. Expected exceptions, Assumption and Injection errors should now be reported correctly(Both when using the @Rule and the @Test.expected variants).

JUnit @Rules support

JUnit rules has historically been a bit tricky with Arquillian. They are executed outside of the Before/After lifecycle where Arquillian has been hooking in, leaving us with no control over when they are executed.

This has in the past caused them to be executed both on the Client side and In Container. With 1.1.5.Final, we’ve moved how all this is executed and included @Rules into the Before/After handling.

This means, @Rules will follow the same rules as @Before/@After, that again follow the execution of @Test. If the @Test is executed In Container, so will the @Rule. If @Test executes on Client, so will the @Rule.

Internal TestResult state correlates with actual result

An old bug in Arquillian has been that the Internal state of the TestResult inside of Arquillian has not matched the TestResult reported by the Test Framework. This comes from how Arquillian work and integrate with the different Test Framework.

The normal case is when using @Test.expected Exception setup, Arquillian internally will report it as failed since it caught an Exception. But the Test Framework might later choose that, no, this was Expected. This happens after Arquillian gave up control of the result and we never had a callback to get this result updated to the actual state.

From the Users perspective, this is just an internal detail and has been nothing to worry about. We’ve been moving forward with the Arquillian Recorder Extension that create User reports for the test run based on the internal state. Because of this, these reports has come out a bit off.

This is now fixed for both the JUnit and TestNG integrations.

For Extension developers who require the correct TestResult; @Observe the After event.

Support exporting Deployments exploded

Arquillian has always supported exporting to disk the Archive that is about to be deployed to the container, either via the arquillian.deploymentExportPath System Property or via arquillian/engine/property@name=deploymentExportPath in arquillian.xml.

It dawned on us that if you’re exporting the deployments to disk, you’re probably interested in seeing the content.

With 1.1.5.Final you can add the arquillian.deploymentExportExploded System Property or arquillian/engine/property@name=deploymentExportExploded in arquillian.xml to have the deployment automatically exploded on export.

What is Arquillian?

Arquillian is open source software that empowers you to test JVM-based applications more effectively. Created to defend the software galaxy from bugs, Arquillian brings your test to the runtime so you can focus on testing your application's behavior rather than managing the runtime. Using Arquillian, you can develop a comprehensive suite of tests from the convenience of your IDE and run them in any IDE, build tool or continuous integration environment.

Release details

Component Arquillian Core
Version 1.1.5.Final view tag
Release date 2014-06-25
Released by Aslak Knutsen
Compiled against

Published artifacts org.jboss.arquillian.core

  • org.jboss.arquillian.core » arquillian-core-api jar javadoc pom
  • org.jboss.arquillian.core » arquillian-core-spi jar javadoc pom
  • org.jboss.arquillian.core » arquillian-core-impl-base jar javadoc pom
  • org.jboss.arquillian.config » arquillian-config-api jar javadoc pom
  • org.jboss.arquillian.config » arquillian-config-spi jar javadoc pom
  • org.jboss.arquillian.config » arquillian-config-impl-base jar javadoc pom
  • org.jboss.arquillian.test » arquillian-test-api jar javadoc pom
  • org.jboss.arquillian.test » arquillian-test-spi jar javadoc pom
  • org.jboss.arquillian.test » arquillian-test-impl-base jar javadoc pom
  • org.jboss.arquillian.container » arquillian-container-spi jar javadoc pom
  • org.jboss.arquillian.container » arquillian-container-impl-base jar javadoc pom
  • org.jboss.arquillian.container » arquillian-container-test-api jar javadoc pom
  • org.jboss.arquillian.container » arquillian-container-test-spi jar javadoc pom
  • org.jboss.arquillian.container » arquillian-container-test-impl-base jar javadoc pom
  • org.jboss.arquillian.junit » arquillian-junit-core jar javadoc pom
  • org.jboss.arquillian.junit » arquillian-junit-standalone jar javadoc pom
  • org.jboss.arquillian.junit » arquillian-junit-container jar javadoc pom
  • org.jboss.arquillian.testng » arquillian-testng-core jar javadoc pom
  • org.jboss.arquillian.testng » arquillian-testng-standalone jar javadoc pom
  • org.jboss.arquillian.testng » arquillian-testng-container jar javadoc pom
  • org.jboss.arquillian.testenricher » arquillian-testenricher-cdi jar javadoc pom
  • org.jboss.arquillian.testenricher » arquillian-testenricher-ejb jar javadoc pom
  • org.jboss.arquillian.testenricher » arquillian-testenricher-resource jar javadoc pom
  • org.jboss.arquillian.testenricher » arquillian-testenricher-initialcontext jar javadoc pom
  • org.jboss.arquillian.protocol » arquillian-protocol-servlet jar javadoc pom
  • org.jboss.arquillian.protocol » arquillian-protocol-jmx jar javadoc pom
  • org.jboss.arquillian » arquillian-bom pom

Release notes and resolved issues 15

Feature Request
  • ARQ-286 - Should support JUnit @Rules
  • ARQ-1606 - Support deploymentExportPath to export Exploded
  • ARQ-1607 - Please avoid using arquillian.launch files, it makes Eclipse generate error logs
  • ARQ-1802 - Expose the underlying HTTPConnection used by Servlet protocol to allow new protocols manipulation access.
Bug
  • ARQ-181 - When using @Test expected exception, the internal state of the TestResult is unknown - JUnit
  • ARQ-1437 - NPE in ExceptionProxy.readExternal() for root cause leads to deserializationProblem = true
  • ARQ-1742 - Exception thrown before BeforeSuite event are not reported to user.
  • ARQ-1758 - Test passes although it fails unexpectedly
  • ARQ-1772 - Arquillian Debug does not print real event class
  • ARQ-1773 - JUnittests pass when exception is thrown from @Before-annotated method
  • ARQ-1796 - Regression: JUnit ExpectedException is not handled correctly
  • ARQ-1801 - @Before not called with arquillian-junit-standalone
  • ARQ-1803 - Deployments not being un-deploying when JUnit Category is used
  • ARQ-1804 - When using @Test expected exception, the internal state of the TestResult is unknown - TestNG
  • ARQ-1816 - Arquillian core is eating up framework exceptions

Thanks to the following list of contributors: Aslak Knutsen, Karol Lassak, Ales Justin