how to make maven release plugin skip tests?

I have used the following in my pom.xml

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-release-plugin</artifactId>
            <version>2.5.3</version>
            <configuration>
                <tagNameFormat>v@{project.version}</tagNameFormat>
                <arguments>-Dmaven.javadoc.skip=true -Dmaven.test.skipTests=true -Dmaven.test.skip=true</arguments>
            </configuration>
        </plugin>

This is one of the first hits in google for this problem and yet doesn't have the most likely explanation and solution, so here is my attempt.

I faced the same issue as the OP in running release:prepare with -DskipTests passed in via -Darguments not getting recognized. After digging in, I noticed that a grandparent POM (parent of the parent) has the following config:

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>2.5.2</version>
          <configuration>
            <arguments>-B</arguments>
          </configuration>
        </plugin>

It actually has more config, but I only show what is most relevant for this problem, which is the <arguments>-B</arguments>. This is hardcoding the arguments configuration parameter to -B instead of letting it read the arguments property. To get around, I added the below in the project pom and it started working:

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <configuration>
            <arguments>$(arguments)</arguments>
          </configuration>
        </plugin>

This worked for me. I wanted to both prepare and perform the release.

mvn clean -DskipTests -Darguments=-DskipTests release:prepare release:perform