I'm trying to set up a Selenium tests on a CI server (Jenkins). It runs on Centos 5 and has no monitor. For Selenium tests I need a way to run Firefox so I've had Xvfb installed. I'm using selenium-maven-plugin to start the Xvfb.
<profile> <id>xvfb-selenium</id> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>selenium-maven-plugin</artifactId> <version>2.0</version> <executions> <execution> <id>xvfb</id> <phase>pre-integration-test</phase> <goals> <goal>xvfb</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> It is inside a profile because I want to run it on CI, but development machines don't need that.
Again I use selenium-maven-plugin to run my selenese tests
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>selenium-maven-plugin</artifactId> <version>2.0</version> <executions> <execution> <id>nessos-selenium-tests</id> <phase>integration-test</phase> <configuration> <browser>*firefox</browser> <suite>src/test/resources/test-suite.html</suite> <startURL>${selenium.startURL}</startURL> </configuration> <goals> <goal>selenese</goal> </goals> </execution> </executions> </plugin> Now when I try to run this, I get this error in Jenkins:
message : Selenium is already running on port 4444. Or some other service is. Stack trace : java.net.BindException: Selenium is already running on port 4444. Or some other service is. at org.openqa.selenium.server.SeleniumServer.start(SeleniumServer.java:410) This doesn't tell me much so I investigated more. In target/selenium/xvfb.log I've got this error:
(EE) config/hal: NewInputDeviceRequest failed (2) (EE) config/hal: NewInputDeviceRequest failed (2) (EE) config/hal: NewInputDeviceRequest failed (2) (EE) config/hal: NewInputDeviceRequest failed (2) (EE) config/hal: NewInputDeviceRequest failed (2) At this point I'm clueless. From maven logs I can see that xvfb goal runs before selenese with this output:
Created dir: /home/jenkins/workspace/myBuild/target/selenium Launching Xvfb [INFO] Redirecting output to: /home/jenkins/workspace/myBuild/target/selenium/xvfb.log Waiting for Xvfb... Xvfb started I've tried following the instructions here: http://mojo.codehaus.org/selenium-maven-plugin/examples/headless-with-xvfb.html
I did the
chmod u+s `which Xvfb` thing and the error message changed to:
Fatal server error: PAM authentication failed, cannot start X server. Perhaps you do not have console ownership? At the bottom of the headless-with-xvfb page there were instructions to fix that. I did that also and now I get (EE) config/hal: NewInputDeviceRequest failed (2) again.
Does anyone know how I would continue to debug this error? Or does anyone know what that error even means?