Здравствуйте!
Меня интересует запуск тестов на Jenkins используя Selenium, JUnit, Maven2. Картина следующая....
1) Создаю простой maven проект и в директории test добавляем следующий исходный код.
package ru.apache_maven;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
/**
* Unit test for simple App.
*/
public class AppTest
{
@Test
public void testMethod()
{
WebDriver driver = new FirefoxDriver();
driver.get("http://google.com");
System.out.println(driver.getTitle());
System.out.println("<====It's work====>");
}
}
Код всем понятен, заходим на google, получаем текст заголовка и готово!
2) Далее, заливаю тест на github.
3) Запускаю Jenkins на локальной машине, -> New Job -> Job name = "TestGoogle", -> Build Maven Project. В настройках указал, ссылку на github, готово!
4) Собственно при запуске (build test), вылетает следующее
------------------------------------------------------- T E S T S -------------------------------------------------------
Running ru.apache_maven.AppTest
org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:(firefox:5994): Gtk-WARNING **: Locale not supported by C library.
Using the fallback ‘C’ locale.
Error: no display specified** (firefox:5994): WARNING **: Command line `dbus-launch --autolaunch=e7dd766f6c2e2373bf5eb9cf00000658 --binary-syntax --close-stderr’ exited with non-zero exit status 1: Autolaunch error: X11 initialization failed.\n
(firefox:6004): Gtk-WARNING **: Locale not supported by C library.
Using the fallback ‘C’ locale.
Error: no display specified** (firefox:6004): WARNING **: Command line `dbus-launch --autolaunch=e7dd766f6c2e2373bf5eb9cf00000658 --binary-syntax --close-stderr’ exited with non-zero exit status 1: Autolaunch error: X11 initialization failed.\n
at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:102) at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:200) at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:94) at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:147) at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:85) at ru.apache_maven.AppTest.testMethod(AppTest.java:16) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164) at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68)
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 46.214 sec <<< FAILURE!
Results : Tests in error: testMethod(ru.apache_maven.AppTest): Failed to connect to binary FirefoxBinary(/usr/bin/firefox) on port 7055; process output follows: Tests run: 1, Failures: 0, Errors: 1, Skipped: 0
Тема заезженная, но при ручном сёрче, в гуглу нашёл разные варианты решения данной проблемы, от обновить FF, до возвращения к более старой версии Selenium. Выполнил то что, более подходило к моей ситуации, - не вышло.
Подскажите пожалуйста, в чём же таится проблема? Вполне возможно я не указал какой-то параметр...
PS: Заранее спасибо за ответ!