Любое использование любого из предложенных методов считают запахом кода, который базируется в плохом дизайне OO.
, Если Ваш дизайн хорош, Вы не должны должными быть для использования getClass()
или instanceof
.
Любой из предложенных методов сделает, но просто что-то для учета, мудрый дизайном.
В Hudson есть новая функция, которая позволяет вам указывать параметры для сборок . Похоже, он делает то, что вы хотите.
Хотя обратите внимание, что:
Это еще очень молодая функция, поэтому обратная связь приветствуется
...
Параметры [s] доступны как параметры среды. Так, например, оболочка ($ FOO,% FOO%) или Ant ($ {env.FOO}) могут получить доступ к этим значениям.
Свойства узла Хадсона будут хорошо поработай здесь. Но если вы ищете более автоматизированный способ присвоения номера экрана, вы Мне нужно проделать еще немного работы, возможно, подключиться к плагину распределителя портов или написать новый плагин BuildWrapper, который автоматически запускает xvfb и устанавливает переменную среды SCREEN от имени сборки.
Если вы хотите переключиться на другой X-сервер для тестирования, вы можете попробовать плагин Xvnc для Hudson. Он автоматически запустит vncserver, а также установит переменную среды SCREEN. Он также имеет возможность сделать снимок экрана после завершения тестов и показать его на странице задания в Hudson.
Если вы хотите переключиться на другой X-сервер для тестирования, вы можете попробовать плагин Xvnc для Hudson. Он автоматически запустит vncserver, а также установит переменную среды SCREEN. Он также имеет возможность сделать снимок экрана после завершения тестов и показать его на странице задания в Hudson. Если вы хотите переключиться на другой X-сервер для тестирования, вы можете попробовать плагин Xvnc для Hudson. Он автоматически запустит vncserver, а также установит переменную среды SCREEN. Он также имеет возможность сделать снимок экрана после завершения тестов и показать его на странице задания в Hudson.В соответствии с моим ответом на принятый ответ, вот мои выводы.
Остерегайтесь неинициализированных переменных
При использовании функции параметризации в Hudson вы можете добавлять переменные среды к конец строки - при условии, что они содержат что-то в первую очередь.
Например, если переменная среды $ FOO пуста, и вы должны были использовать следующую строку в параметре строки ...
/usr/bin/ladeda/:$F00
, тогда переменная среды будет читать /usr/bin/ladeda/:$F00.
Однако, если бы я сделал
export F00=/usr/bin/fiddledede
, то экспортированная переменная была бы ....
/usr/bin/ladeda/:/usr/bin/fiddledede
Когда я первоначально запускал это как тест, у меня было не сработали - и поэтому думали, что функция параметров не принимает внешние переменные среды, хотя на самом деле это было (они просто должны были что-то содержать).
fyi, я выпускаю плагин setenv для Hudson сегодня (при условии, что java.net восстанавливается достаточно для меня!) - он ведет себя аналогично параметризованной сборке функциональность, но с более простым пользовательским интерфейсом (только текстовое поле для ввода - пары ключ / значение разделены символами новой строки) и без необходимости предоставлять значения для параметров во время сборки.
Я обнаружил, что запуск селена с использованием xvfb-run
более надежен, чем установка DISPLAY, так что это может сработать для вас. Итак:
xvfb-run java -jar selenium-server.jar
Вы пробовали использовать плагин selenium maven?
Плагин можно настроить для запуска Xvfb, запуска тестов и затем остановки.
с использованием этой конфигурации pom.xml:
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>selenium-maven-plugin</artifactId>
<executions>
<execution>
<id>xvfb</id>
<phase>pre-integration-test</phase>
<goals>
<goal>xvfb</goal>
</goals>
</execution>
<execution>
<id>selenium</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start-server</goal>
</goals>
<configuration>
<background>true</background>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
подробности здесь: http://mojo.codehaus.org/selenium-maven-plugin/examples/headless-with-xvfb.html