Тестирование с помощью Arquillian, как поделиться Arquillian.xml ?

#java #testing #junit #jboss-arquillian

#java #тестирование #junit #jboss-аркиллиан

Вопрос:

Как можно использовать конфигурационный файл Arquillian Arquillian.xml быть разделенным между проектами и членами команды?

 <arquillian xmlns="http://jboss.org/schema/arquillian"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
    http://jboss.org/schema/arquillian
    http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
<container qualifier="jbossas-managed-wildfly-8" default="true">
    <configuration>
        <property name="jbossHome">C:testwildfly-8.1.0.Final</property>
        <property name="javaVmArguments">-Djboss.socket.binding.port-offset=2 -Xmx512m -XX:MaxPermSize=128m</property>
        <property name="managementPort">9992</property>
    </configuration>
</container>
 

Проблема в том, что это указывает на определенные местоположения на диске, и разные члены команды используют Wildfly в разных местах.

Кроме того, мы должны дублировать Arquillian.xml для каждого проекта, который его использует.

Мы используем Arquillian для тестирования Maven (которое может вводить значения) и JUnit-тестов в Eclipse (которые не могут их вводить).

Есть идеи, как это сделать?

Ответ №1:

Поскольку уже есть поддержка и структура Maven, вы можете использовать свойства Maven и заменять значения заполнителей. Это просто

Я предполагаю, что ваш Arquillian.xml находится под src/test/resources/arquillian.xml верно? Затем вы можете заменить абсолютные значения свойствами.

  <configuration>
    <property name="jbossHome">${jboss.home}</property>
</configuration>
 

Указанное выше свойство может быть либо определено в разделе свойств вашего pom, либо может быть переопределено во время выполнения mvn с помощью -Djboss.home=C:myPath

Для того, чтобы эта вещь работала, вы хотите, чтобы Maven автоматически использовался для каждого разработчика, когда он собирается упаковать arquillian.xml чтобы заменить этот заполнитель ${jboss.home} значением, которое мы либо определили сверху в разделе свойств, либо передали его из командной строки. Это делается с помощью функции фильтрации ресурсов

  <build>
     <testResources>
        <testResource>
            <directory>src/test/resources</directory>
            <filtering>true</filtering>
         </testResource>

     <testResources>
</build>
 

Смотрите простые примеры здесь

Комментарии:

1. Спасибо, это сделало свое дело. Мне также пришлось добавить <directory>src/test/resources</directory> в testResource . Для тестов JUnit я добавляю к аргументам виртуальной машины.