Robot Framework Maven Plugin

Maven plugin for using the Robot Framework. Goal of this plugin is to be able to use Robot Framework in a Maven project without the need to install anything extra (e.g. Robot Framework, Jython, etc). In short, it's a non-invasive way of introducing acceptance test driven development to your existing projects quickly.

This project was forked from http://code.google.com/p/robotframework-maven-plugin. See instructions for transitioning from previous version.

Goals Overview

Plugin provides the following goals:

  • robotframework:run - behaves like invoking the jybot Robot Framework command for executing test cases
  • robotframework:acceptance-test - Runs the tests, like the run-goal, but does not verify the test results.
  • robotframework:verify - Verifies the results from acceptance-test goal.
  • robotframework:libdoc invokes the libdoc Robot Framework command for generating keyword documentation for test libraries and resource files
  • robotframework:testdoc invokes the testdoc Robot Framework command for generating high level overview of test suites
  • robotframework:rebot invokes the rebot Robot Framework command that separately allows creating custom reports and logs as well as combining and merging results. It can also be used to separate test execution and report generation to different maven profiles.

Getting started

Add the plugin to your build:

<project>

  <build>
    ..
    ..
    <plugins>
      ..
      ..

      <plugin>
        <groupId>org.robotframework</groupId>
        <artifactId>robotframework-maven-plugin</artifactId>
        <version>2.1.0</version>
        <executions>
          <execution>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      ..
      ..
    </plugins>
  </build>

</project>

By default, you can add your test cases to ${project.basedir}/src/test/robotframework/acceptance

Third party libraries (e.g. Selenium Library) can be added to ${project.basedir}/src/test/resources/robotframework/libraries. Java dependencies can be expressed as dependencies to the Robotframework maven plugin configuration in pom.xml.

During mvn install invocation, the run goal will by default be invoked during the integration-test phase.

Some more specific use cases are described in the examples given below..

In case you still have questions regarding the plugin's usage feel free to contact the user mailing list. The posts to the mailing list are archived and could already contain the answer to your question as part of an older thread. Hence, it is also worth browsing/searching the mail archive.

If you feel like the plugin is missing a feature or has a defect, you can fill a feature request or bug report in our issue tracker. When creating a new issue, please provide a comprehensive description of your concern. Especially for fixing bugs it is crucial that the developers can reproduce your problem. For this reason, entire debug logs, POMs or most preferably little demo projects attached to the issue are very much appreciated. Of course, patches are welcome, too. Contributors can check out the project from our source repository and will find supplementary information in the guide to helping with Maven.

About memory usage

This plugin runs Robot Framework with Jython and in some cases parsing the Robot's own output.xml can cause Jython to use excessive amounts of memory.

To avoid parsing the xml, you can disable log generation by the setting logFile config to value NONE. This still allows Robot to generate the html report, and the xunit output-file, which the plugin uses to verify the results of the test run. The log-file can be generated later from the output.xml using robotframework:rebot-goal if needed.

Updating Robot Framework dependency

If you want to use a different Robot Framework version, you can override the dependency in your plugin declaration:

<project>
      ..
      <plugin>
        <groupId>org.robotframework</groupId>
        <artifactId>robotframework-maven-plugin</artifactId>
        <version>2.1.0</version>
        <executions>
          <execution>
            <goals>
               <goal>run</goal>
            </goals>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>org.robotframework</groupId>
            <artifactId>robotframework</artifactId>
            <version>2.8.7</version>
          </dependency>
        </dependencies>
      </plugin>
        ..
</project>

Examples

To provide you with better understanding of some usages of the Robot Framework Maven Plugin, you can take a look into the following examples:

Source and issue tracker

Project github pages contain the source code and also the issue tracker.