Как импортировать robot-файл из подключаемой java-библотеки.

java
robot-framework
maven
Теги: #<Tag:0x00007fedc0f38aa8> #<Tag:0x00007fedc0f388a0> #<Tag:0x00007fedc0f38710>

(Seploid) #1

Работаю в связке #java + #robot-framework . Занимаюсь тестированием микросервисов. Для каждого сервиса будет создан отдельный тестовый проект. Создал тестовые библиотеки для проверки #http и #json и выделил их в отдельную подключаемую как #maven зависимость библиотеку.
Соответственно появилась потребность объединить все общие keyword’ы в некий robot-файл и так же поместить его в эту подключаемую библиотеку.

Но тут повилась пролема - в тестах я никак не могу импортировать robot-файлы подключаемой библиотеки.
Кто-нибудь сталкивался с такой проблемой?


(Seploid) #2

Пришел к следующему решению - с помощью мавен плагинов копирую ресуросы подключаемой библиотеки в текущий проект.

pom.xml

<build>
       …
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>unpack</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>prototype-apitesting</groupId>
                                    <artifactId>apitesting</artifactId>
                                    <version>${acceptence.test.library.version}</version>
                                    <type>jar</type>
                                    <includes>com.robot.common/*</includes>
                                    <outputDirectory>${basedir}/src/main/resources</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

Структура подключаемого проекта:

├── java
│   └── com
│       └── robot
│           └── sample
│               └── keywords
│                   └── APITestingKeywords.java
└── resources
    └── com.robot.common
        ├── Config.robot
        ├── HttpAssertions.robot
        └── keywords
            ├── AccountServicesKeywords.robot
            └── SessionServicesKeywords.robot

(Сергей Кузьмин) #3

альтернативный способ указать systemPath

    <dependency>
      <groupId>com.robot.common</groupId>
      <artifactId>robot</artifactId>
      <version>${robot.version}</version>
      <type>jar</type>
      <scope>system</scope>
      <systemPath>${project.basedir}/src/main/resources/robot-${robot.version}.jar</systemPath>
    </dependency>