Over a million developers have joined DZone.
Platinum Partner

Testing Stages in Maven

· DevOps Zone

The DevOps Zone is brought to you in partnership with New Relic.  Learn more about the common barriers to DevOps adoption so that you can come up with ways to win over the skeptics and kickstart DevOps.

Test Stages in Development

There are a few stages in development testing. An SDLC figure it illustrates the different test stages in each development phase.


Test Stages in the Development Phase

  1. Unit Testing
  2. Integration Testing
  3. Test Automation 

In Maven, we have different lifecycles. By default, using Maven will help us to achieve test automation, but Maven phases help us to achieve the various stages, too.

Please have a look at the figure below, or read about it in detail here.


Step 1: Configuring the POM file

However, we can consume a Maven plugin to be able to have integration tests in our code. Have a look at the following example inside your build tags:

<!-- by default failsafe will include all java file with naming: **/IT*.java, **/*IT.java, **/*ITCase.java -->
<build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>2.16</version>
        <executions>
          <execution>
            <goals>
              <goal>integration-test</goal>
              <goal>verify</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>


Step 2: The Java Class

This step is pretty simple, any Java class that follows this naming convention can be considered an integration test:

By default, failsafe will include all Java files with the name: **/IT*.java, **/*IT.java, **/*ITCase.java

Step 3: How to Execute the Integration Tests

Then you can have another job in your CI to execute integration test separately (mvn verify) to avoid your unit test failing.

The DevOps Zone is brought to you in partnership with New Relic. Quickly learn how to use Docker and containers in general to create packaged images for easy management, testing, and deployment of software.

Topics:

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}