Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
7.0.3
Description
In order to speed up tests, I wanted to run them in parallel using Maven Surefire's parallel execution capabilities. But even when running every test class in its own forked VM tests were failing randomly, mostly due to missing files in the temporary container directory. The reason is that all temporary containers will use the same directory, which is
dir = System.getProperty("java.io.tmpdir") + "/arquillian-apache-tomee" and/or
appWorkingDir = System.getProperty("java.io.tmpdir") + "/arquillian-tomee-app-working-dir
(see org.apache.openejb.arquillian.common.TomEEConfiguration).
This means different processes running TomEE via Arquillian will interfere with each other, even completely independent process and even from different users.
As a solution the above-mention directories must be created such that they are unique for the process, e.g. by using java.nio.Files.createTempDirectory.