Estou tentando configurar testes do Selenium em um servidor de IC (Jenkins). Ele roda no Centos 5 e não tem monitor. Para os testes do Selenium eu preciso de uma maneira de rodar o Firefox, então eu tive o Xvfb instalado. Estou usando o plugin-maven do selenium para iniciar o 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>
Está dentro de um perfil porque quero executá-lo no CI, mas as máquinas de desenvolvimento não precisam disso.
Novamente eu uso o plugin-maven-selenium para executar meus testes seleneses
<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>
Agora, quando tento executar isso, recebo esse erro no 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)
Isso não me diz muito, então eu investiguei mais. Em target / selenium / xvfb.log, recebi este erro:
(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)
Neste momento eu sou sem noção. De logs maven eu posso ver que o objetivo xvfb é executado antes de selenese com esta saída:
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
Eu tentei seguir as instruções aqui: link
eu fiz o
chmod u+s 'which Xvfb'
coisa e a mensagem de erro mudou para:
Fatal server error:
PAM authentication failed, cannot start X server.
Perhaps you do not have console ownership?
Na parte inferior da página headless-with-xvfb, havia instruções para corrigir isso. Eu fiz isso também e agora recebo (EE) config/hal: NewInputDeviceRequest failed (2)
novamente.
Alguém sabe como eu continuaria a depurar esse erro? Ou alguém sabe o que esse erro significa?