Coverage Report - org.apache.maven.plugin.surefire.SurefirePlugin
 
Classes in this File Line Coverage Branch Coverage Complexity
SurefirePlugin
0%
0/205
0%
0/22
1.099
 
 1  
 package org.apache.maven.plugin.surefire;
 2  
 
 3  
 /*
 4  
  * Licensed to the Apache Software Foundation (ASF) under one
 5  
  * or more contributor license agreements.  See the NOTICE file
 6  
  * distributed with this work for additional information
 7  
  * regarding copyright ownership.  The ASF licenses this file
 8  
  * to you under the Apache License, Version 2.0 (the
 9  
  * "License"); you may not use this file except in compliance
 10  
  * with the License.  You may obtain a copy of the License at
 11  
  *
 12  
  *     http://www.apache.org/licenses/LICENSE-2.0
 13  
  *
 14  
  * Unless required by applicable law or agreed to in writing,
 15  
  * software distributed under the License is distributed on an
 16  
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 17  
  * KIND, either express or implied.  See the License for the
 18  
  * specific language governing permissions and limitations
 19  
  * under the License.
 20  
  */
 21  
 
 22  
 import java.io.File;
 23  
 import java.util.HashMap;
 24  
 import java.util.List;
 25  
 import java.util.Map;
 26  
 import java.util.Properties;
 27  
 
 28  
 import org.apache.maven.artifact.factory.ArtifactFactory;
 29  
 import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
 30  
 import org.apache.maven.artifact.repository.ArtifactRepository;
 31  
 import org.apache.maven.artifact.resolver.ArtifactResolver;
 32  
 import org.apache.maven.execution.MavenSession;
 33  
 import org.apache.maven.plugin.MojoExecutionException;
 34  
 import org.apache.maven.plugin.MojoFailureException;
 35  
 import org.apache.maven.project.MavenProject;
 36  
 import org.apache.maven.surefire.booter.SurefireBooter;
 37  
 import org.apache.maven.surefire.booter.SurefireBooterForkException;
 38  
 import org.apache.maven.surefire.booter.SurefireExecutionException;
 39  
 import org.apache.maven.toolchain.ToolchainManager;
 40  
 import org.codehaus.plexus.util.StringUtils;
 41  
 
 42  
 /**
 43  
  * Run tests using Surefire.
 44  
  *
 45  
  * @author Jason van Zyl
 46  
  * @version $Id: SurefirePlugin.java 981261 2010-08-01 16:26:10Z bentmann $
 47  
  * @requiresDependencyResolution test
 48  
  * @goal test
 49  
  * @phase test
 50  
  * @threadSafe
 51  
  */
 52  0
 public class SurefirePlugin
 53  
     extends AbstractSurefireMojo
 54  
     implements SurefireExecutionParameters, SurefireReportParameters
 55  
 {
 56  
 
 57  
     /**
 58  
      * Set this to 'true' to skip running tests, but still compile them. Its use is NOT RECOMMENDED, but quite
 59  
      * convenient on occasion.
 60  
      *
 61  
      * @parameter default-value="false" expression="${skipTests}"
 62  
      * @since 2.4
 63  
      */
 64  
     private boolean skipTests;
 65  
 
 66  
     /**
 67  
      * This old parameter is just like skipTests, but bound to the old property maven.test.skip.exec.
 68  
      *
 69  
      * @parameter expression="${maven.test.skip.exec}"
 70  
      * @since 2.3
 71  
      * @deprecated Use -DskipTests instead.
 72  
      */
 73  
     private boolean skipExec;
 74  
 
 75  
     /**
 76  
      * Set this to 'true' to bypass unit tests entirely. Its use is NOT RECOMMENDED, especially if you
 77  
      * enable it using the "maven.test.skip" property, because maven.test.skip disables both running the
 78  
      * tests and compiling the tests.  Consider using the skipTests parameter instead.
 79  
      *
 80  
      * @parameter default-value="false" expression="${maven.test.skip}"
 81  
      */
 82  
     private boolean skip;
 83  
 
 84  
     /**
 85  
      * Set this to true to ignore a failure during testing. Its use is NOT RECOMMENDED, but quite convenient on
 86  
      * occasion.
 87  
      *
 88  
      * @parameter default-value="false" expression="${maven.test.failure.ignore}"
 89  
      */
 90  
     private boolean testFailureIgnore;
 91  
 
 92  
     /**
 93  
      * The base directory of the project being tested. This can be obtained in your unit test by
 94  
      * System.getProperty("basedir").
 95  
      *
 96  
      * @parameter default-value="${basedir}"
 97  
      */
 98  
     private File basedir;
 99  
 
 100  
     /**
 101  
      * The directory containing generated test classes of the project being tested.
 102  
      * This will be included at the beginning the test classpath.
 103  
      *
 104  
      * @parameter default-value="${project.build.testOutputDirectory}"
 105  
      */
 106  
     private File testClassesDirectory;
 107  
 
 108  
     /**
 109  
      * The directory containing generated classes of the project being tested.
 110  
      * This will be included after the test classes in the test classpath.
 111  
      *
 112  
      * @parameter default-value="${project.build.outputDirectory}"
 113  
      */
 114  
     private File classesDirectory;
 115  
 
 116  
     /**
 117  
      * The Maven Project Object
 118  
      *
 119  
      * @parameter default-value="${project}"
 120  
      * @readonly
 121  
      */
 122  
     private MavenProject project;
 123  
 
 124  
     /**
 125  
      * List of dependencies to exclude from the test classpath.
 126  
      * Each dependency string must follow the format <i>groupId:artifactId</i>.
 127  
      * For example: <i>org.acme:project-a</i>
 128  
      * 
 129  
      *  @parameter
 130  
      *  @since 2.6
 131  
      */
 132  
     private List classpathDependencyExcludes;
 133  
     
 134  
     /**
 135  
      * A dependency scope to exclude from the test classpath
 136  
      * The scope can be one of the following scopes:
 137  
      * 
 138  
      * <ul>
 139  
      * <li><i>compile</i> - system, provided, compile
 140  
      * <li><i>runtime</i> - compile, runtime
 141  
      * <li><i>test</i> - system, provided, compile, runtime, test
 142  
      * </ul>
 143  
      * 
 144  
      * @parameter default-value=""
 145  
      * @since 2.6
 146  
      */
 147  
     private String classpathDependencyScopeExclude;
 148  
     
 149  
     /**
 150  
      * Additional elements to be appended to the classpath.
 151  
      *
 152  
      * @parameter
 153  
      * @since 2.4
 154  
      */
 155  
     private List additionalClasspathElements;
 156  
 
 157  
     /**
 158  
      * Base directory where all reports are written to.
 159  
      *
 160  
      * @parameter default-value="${project.build.directory}/surefire-reports"
 161  
      */
 162  
     private File reportsDirectory;
 163  
 
 164  
     /**
 165  
      * The test source directory containing test class sources.
 166  
      *
 167  
      * @parameter default-value="${project.build.testSourceDirectory}"
 168  
      * @required
 169  
      * @since 2.2
 170  
      */
 171  
     private File testSourceDirectory;
 172  
 
 173  
     /**
 174  
      * Specify this parameter to run individual tests by file name, overriding the <code>includes/excludes</code>
 175  
      * parameters.  Each pattern you specify here will be used to create an
 176  
      * include pattern formatted like <code>**&#47;${test}.java</code>, so you can just type "-Dtest=MyTest"
 177  
      * to run a single test called "foo/MyTest.java".  This parameter will override the TestNG suiteXmlFiles
 178  
      * parameter.
 179  
      *
 180  
      * @parameter expression="${test}"
 181  
      */
 182  
     private String test;
 183  
 
 184  
     /**
 185  
      * List of patterns (separated by commas) used to specify the tests that should be included in testing. When not
 186  
      * specified and when the <code>test</code> parameter is not specified, the default includes will be
 187  
      * <code>**&#47;Test*.java   **&#47;*Test.java   **&#47;*TestCase.java</code>.  This parameter is ignored if
 188  
      * TestNG suiteXmlFiles are specified.
 189  
      *
 190  
      * @parameter
 191  
      */
 192  
     private List includes;
 193  
 
 194  
     /**
 195  
      * List of patterns (separated by commas) used to specify the tests that should be excluded in testing. When not
 196  
      * specified and when the <code>test</code> parameter is not specified, the default excludes will be
 197  
      * <code>**&#47;*$*</code> (which excludes all inner classes).  This parameter is ignored if
 198  
      * TestNG suiteXmlFiles are specified.
 199  
      *
 200  
      * @parameter
 201  
      */
 202  
     private List excludes;
 203  
 
 204  
     /**
 205  
      * ArtifactRepository of the localRepository. To obtain the directory of localRepository in unit tests use
 206  
      * System.setProperty( "localRepository").
 207  
      *
 208  
      * @parameter expression="${localRepository}"
 209  
      * @required
 210  
      * @readonly
 211  
      */
 212  
     private ArtifactRepository localRepository;
 213  
 
 214  
     /**
 215  
      * List of System properties to pass to the JUnit tests.
 216  
      *
 217  
      * @parameter
 218  
      * @deprecated Use systemPropertyVariables instead.
 219  
      */
 220  
     private Properties systemProperties;
 221  
 
 222  
     /**
 223  
      * List of System properties to pass to the JUnit tests.
 224  
      *
 225  
      * @parameter
 226  
      * @since 2.5
 227  
      */
 228  
     private Map systemPropertyVariables;
 229  
 
 230  
     /**
 231  
      * List of properties for configuring all TestNG related configurations. This is the new
 232  
      * preferred method of configuring TestNG.
 233  
      *
 234  
      * @parameter
 235  
      * @since 2.4
 236  
      */
 237  
     private Properties properties;
 238  
 
 239  
     /**
 240  
      * Map of of plugin artifacts.
 241  
      *
 242  
      * @parameter expression="${plugin.artifactMap}"
 243  
      * @required
 244  
      * @readonly
 245  
      */
 246  
     private Map pluginArtifactMap;
 247  
 
 248  
     /**
 249  
      * Map of of project artifacts.
 250  
      *
 251  
      * @parameter expression="${project.artifactMap}"
 252  
      * @required
 253  
      * @readonly
 254  
      */
 255  
     private Map projectArtifactMap;
 256  
 
 257  
     /**
 258  
      * Option to print summary of test suites or just print the test cases that has errors.
 259  
      *
 260  
      * @parameter expression="${surefire.printSummary}" default-value="true"
 261  
      */
 262  
     private boolean printSummary;
 263  
 
 264  
     /**
 265  
      * Selects the formatting for the test report to be generated. Can be set as brief or plain.
 266  
      *
 267  
      * @parameter expression="${surefire.reportFormat}" default-value="brief"
 268  
      */
 269  
     private String reportFormat;
 270  
 
 271  
     /**
 272  
      * Option to generate a file test report or just output the test report to the console.
 273  
      *
 274  
      * @parameter expression="${surefire.useFile}" default-value="true"
 275  
      */
 276  
     private boolean useFile;
 277  
 
 278  
     /**
 279  
      * When forking, set this to true to redirect the unit test standard output to a file (found in
 280  
      * reportsDirectory/testName-output.txt).
 281  
      *
 282  
      * @parameter expression="${maven.test.redirectTestOutputToFile}" default-value="false"
 283  
      * @since 2.3
 284  
      */
 285  
     private boolean redirectTestOutputToFile;
 286  
 
 287  
     /**
 288  
      * Set this to "true" to cause a failure if there are no tests to run.
 289  
      *
 290  
      * @parameter expression="${failIfNoTests}"
 291  
      * @since 2.4
 292  
      */
 293  
     private Boolean failIfNoTests;
 294  
 
 295  
     /**
 296  
      * Option to specify the forking mode. Can be "never", "once" or "always". "none" and "pertest" are also accepted
 297  
      * for backwards compatibility.
 298  
      *
 299  
      * @parameter expression="${forkMode}" default-value="once"
 300  
      * @since 2.1
 301  
      */
 302  
     private String forkMode;
 303  
 
 304  
     /**
 305  
      * Option to specify the jvm (or path to the java executable) to use with the forking options. For the default, the
 306  
      * jvm will be the same as the one used to run Maven.
 307  
      *
 308  
      * @parameter expression="${jvm}"
 309  
      * @since 2.1
 310  
      */
 311  
     private String jvm;
 312  
 
 313  
     /**
 314  
      * Arbitrary JVM options to set on the command line.
 315  
      *
 316  
      * @parameter expression="${argLine}"
 317  
      * @since 2.1
 318  
      */
 319  
     private String argLine;
 320  
 
 321  
     /**
 322  
      * Attach a debugger to the forked JVM.  If set to "true", the process will suspend and
 323  
      * wait for a debugger to attach on port 5005.  If set to some other string, that
 324  
      * string will be appended to the argLine, allowing you to configure arbitrary
 325  
      * debuggability options (without overwriting the other options specified in the argLine).
 326  
      *
 327  
      * @parameter expression="${maven.surefire.debug}"
 328  
      * @since 2.4
 329  
      */
 330  
     private String debugForkedProcess;
 331  
 
 332  
     /**
 333  
      * Kill the forked test process after a certain number of seconds.  If set to 0,
 334  
      * wait forever for the process, never timing out.
 335  
      *
 336  
      * @parameter expression="${surefire.timeout}"
 337  
      * @since 2.4
 338  
      */
 339  
     private int forkedProcessTimeoutInSeconds;
 340  
 
 341  
     /**
 342  
      * Additional environments to set on the command line.
 343  
      *
 344  
      * @parameter
 345  
      * @since 2.1.3
 346  
      */
 347  0
     private Map environmentVariables = new HashMap();
 348  
 
 349  
     /**
 350  
      * Command line working directory.
 351  
      *
 352  
      * @parameter expression="${basedir}"
 353  
      * @since 2.1.3
 354  
      */
 355  
     private File workingDirectory;
 356  
 
 357  
     /**
 358  
      * When false it makes tests run using the standard classloader delegation instead of the default Maven isolated
 359  
      * classloader. Only used when forking (forkMode is not "none").<br/> Setting it to false helps with some problems
 360  
      * caused by conflicts between xml parsers in the classpath and the Java 5 provider parser.
 361  
      *
 362  
      * @parameter expression="${childDelegation}" default-value="false"
 363  
      * @since 2.1
 364  
      */
 365  
     private boolean childDelegation;
 366  
 
 367  
     /**
 368  
      * (TestNG only) Groups for this test. Only classes/methods/etc decorated with one of the groups specified here will be included
 369  
      * in test run, if specified.  This parameter is overridden if suiteXmlFiles are specified.
 370  
      *
 371  
      * @parameter expression="${groups}"
 372  
      * @since 2.2
 373  
      */
 374  
     private String groups;
 375  
 
 376  
     /**
 377  
      * (TestNG only) Excluded groups. Any methods/classes/etc with one of the groups specified in this list will specifically not be
 378  
      * run.  This parameter is overridden if suiteXmlFiles are specified.
 379  
      *
 380  
      * @parameter expression="${excludedGroups}"
 381  
      * @since 2.2
 382  
      */
 383  
     private String excludedGroups;
 384  
 
 385  
     /**
 386  
      * (TestNG only) List of TestNG suite xml file locations, seperated by commas. Note that suiteXmlFiles is incompatible
 387  
      * with several other parameters on this plugin, like includes/excludes.  This parameter is ignored if
 388  
      * the "test" parameter is specified (allowing you to run a single test instead of an entire suite).
 389  
      *
 390  
      * @parameter
 391  
      * @since 2.2
 392  
      */
 393  
     private File[] suiteXmlFiles;
 394  
 
 395  
     /**
 396  
      * Allows you to specify the name of the JUnit artifact. If not set, <code>junit:junit</code> will be used.
 397  
      *
 398  
      * @parameter expression="${junitArtifactName}" default-value="junit:junit"
 399  
      * @since 2.3.1
 400  
      */
 401  
     private String junitArtifactName;
 402  
 
 403  
     /**
 404  
      * Allows you to specify the name of the TestNG artifact. If not set, <code>org.testng:testng</code> will be used.
 405  
      *
 406  
      * @parameter expression="${testNGArtifactName}" default-value="org.testng:testng"
 407  
      * @since 2.3.1
 408  
      */
 409  
     private String testNGArtifactName;
 410  
 
 411  
     /**
 412  
      * (TestNG/JUnit 4.7 provider only) The attribute thread-count allows you to specify how many threads should be allocated for this execution. Only
 413  
      * makes sense to use in conjunction with parallel.
 414  
      *
 415  
      * @parameter expression="${threadCount}"
 416  
      * @since 2.2
 417  
      */
 418  
     private int threadCount;
 419  
 
 420  
     /**
 421  
      * (JUnit 4.7 provider) Indicates that threadCount is per cpu core. Defaults to true
 422  
      *
 423  
      * @parameter expression="${perCoreThreadCount}"
 424  
      * @since 2.5
 425  
      */
 426  
     private String perCoreThreadCount;
 427  
 
 428  
     /**
 429  
      * (JUnit 4.7 provider) Indicates that the thread pool will be unlimited. The parallel parameter and the actual number of classes/methods
 430  
      * will decide. Setting this to true effectively disables perCoreThreadCount and threadCount.
 431  
      *
 432  
      * @parameter expression="${useUnlimitedThreads}"
 433  
      * @since 2.5
 434  
      */
 435  
     private String useUnlimitedThreads;
 436  
 
 437  
     /**
 438  
      * (TestNG only) When you use the parallel attribute, TestNG will try to run all your test methods in separate threads, except for
 439  
      * methods that depend on each other, which will be run in the same thread in order to respect their order of
 440  
      * execution.
 441  
      * <p/>
 442  
      * (JUnit 4.7 provider) Supports values classes/methods/both to run in separate threads, as controlled by threadCount.
 443  
      *
 444  
      * @parameter expression="${parallel}"
 445  
      * @todo test how this works with forking, and console/file output parallelism
 446  
      * @since 2.2
 447  
      */
 448  
     private String parallel;
 449  
 
 450  
     /**
 451  
      * Whether to trim the stack trace in the reports to just the lines within the test, or show the full trace.
 452  
      *
 453  
      * @parameter expression="${trimStackTrace}" default-value="true"
 454  
      * @since 2.2
 455  
      */
 456  
     private boolean trimStackTrace;
 457  
 
 458  
     /**
 459  
      * Resolves the artifacts needed.
 460  
      *
 461  
      * @component
 462  
      */
 463  
     private ArtifactResolver artifactResolver;
 464  
 
 465  
     /**
 466  
      * Creates the artifact
 467  
      *
 468  
      * @component
 469  
      */
 470  
     private ArtifactFactory artifactFactory;
 471  
 
 472  
     /**
 473  
      * The plugin remote repositories declared in the POM.
 474  
      *
 475  
      * @parameter expression="${project.pluginArtifactRepositories}"
 476  
      * @since 2.2
 477  
      */
 478  
     private List remoteRepositories;
 479  
 
 480  
     /**
 481  
      * For retrieval of artifact's metadata.
 482  
      *
 483  
      * @component
 484  
      */
 485  
     private ArtifactMetadataSource metadataSource;
 486  
 
 487  
     private Properties originalSystemProperties;
 488  
 
 489  
     /**
 490  
      * systemPropertyVariables + systemProperties
 491  
      */
 492  0
     private Properties internalSystemProperties = new Properties();
 493  
 
 494  
     /**
 495  
      * Flag to disable the generation of report files in xml format.
 496  
      *
 497  
      * @parameter expression="${disableXmlReport}" default-value="false"
 498  
      * @since 2.2
 499  
      */
 500  
     private boolean disableXmlReport;
 501  
 
 502  
     /**
 503  
      * Option to pass dependencies to the system's classloader instead of using an isolated class loader when forking.
 504  
      * Prevents problems with JDKs which implement the service provider lookup mechanism by using the system's
 505  
      * classloader.  Default value is "true".
 506  
      *
 507  
      * @parameter expression="${surefire.useSystemClassLoader}"
 508  
      * @since 2.3
 509  
      */
 510  
     private Boolean useSystemClassLoader;
 511  
 
 512  
     /**
 513  
      * By default, Surefire forks your tests using a manifest-only JAR; set this parameter
 514  
      * to "false" to force it to launch your tests with a plain old Java classpath.
 515  
      * (See http://maven.apache.org/plugins/maven-surefire-plugin/examples/class-loading.html
 516  
      * for a more detailed explanation of manifest-only JARs and their benefits.)
 517  
      * <p/>
 518  
      * Beware, setting this to "false" may cause your tests to
 519  
      * fail on Windows if your classpath is too long.
 520  
      *
 521  
      * @parameter expression="${surefire.useManifestOnlyJar}" default-value="true"
 522  
      * @since 2.4.3
 523  
      */
 524  
     private boolean useManifestOnlyJar;
 525  
 
 526  
     /**
 527  
      * By default, Surefire enables JVM assertions for the execution of your test cases. To disable the assertions, set
 528  
      * this flag to <code>false</code>.
 529  
      *
 530  
      * @parameter expression="${enableAssertions}" default-value="true"
 531  
      * @since 2.3.1
 532  
      */
 533  
     private boolean enableAssertions;
 534  
 
 535  
     /**
 536  
      * The current build session instance.
 537  
      *
 538  
      * @parameter expression="${session}"
 539  
      * @required
 540  
      * @readonly
 541  
      */
 542  
     private MavenSession session;
 543  
 
 544  
     /**
 545  
      * (TestNG only) Define the factory class used to create all test instances
 546  
      *
 547  
      * @parameter expression="${objectFactory}"
 548  
      * @since 2.5
 549  
      */
 550  
     private String objectFactory;
 551  
 
 552  
 
 553  
     /** @parameter default-value="${session.parallel}" */
 554  
     private Boolean parallelMavenExecution;
 555  
     
 556  
     /**
 557  
      * @component
 558  
      */
 559  
     private ToolchainManager toolchainManager;
 560  
 
 561  
 
 562  
     public void execute()
 563  
         throws MojoExecutionException, MojoFailureException
 564  
     {
 565  0
         if ( verifyParameters() )
 566  
         {
 567  0
             SurefireBooter surefireBooter = constructSurefireBooter();
 568  
 
 569  0
             getLog().info(
 570  
                 StringUtils.capitalizeFirstLetter( getPluginName() ) + " report directory: " + getReportsDirectory() );
 571  
 
 572  
             int result;
 573  
             try
 574  
             {
 575  0
                 result = surefireBooter.run();
 576  
             }
 577  0
             catch ( SurefireBooterForkException e )
 578  
             {
 579  0
                 throw new MojoExecutionException( e.getMessage(), e );
 580  
             }
 581  0
             catch ( SurefireExecutionException e )
 582  
             {
 583  0
                 throw new MojoExecutionException( e.getMessage(), e );
 584  0
             }
 585  
 
 586  0
             if ( getOriginalSystemProperties() != null && !surefireBooter.isForking() )
 587  
             {
 588  
                 // restore system properties, only makes sense when not forking..
 589  0
                 System.setProperties( getOriginalSystemProperties() );
 590  
             }
 591  
 
 592  0
             SurefireHelper.reportExecution( this, result, getLog() );
 593  
         }
 594  0
     }
 595  
 
 596  
     protected boolean verifyParameters()
 597  
         throws MojoFailureException
 598  
     {
 599  0
         if ( isSkip() || isSkipTests() || isSkipExec() )
 600  
         {
 601  0
             getLog().info( "Tests are skipped." );
 602  0
             return false;
 603  
         }
 604  
 
 605  0
         if ( !getTestClassesDirectory().exists() )
 606  
         {
 607  0
             if ( getFailIfNoTests() != null && getFailIfNoTests().booleanValue() )
 608  
             {
 609  0
                 throw new MojoFailureException( "No tests to run!" );
 610  
             }
 611  0
             getLog().info( "No tests to run." );
 612  0
             return true;
 613  
         }
 614  
 
 615  0
         ensureWorkingDirectoryExists();
 616  
 
 617  0
         ensureParallelRunningCompatibility();
 618  
 
 619  0
         warnIfUselessUseSystemClassLoaderParameter();
 620  
 
 621  0
         return true;
 622  
     }
 623  
 
 624  
     protected String getPluginName()
 625  
     {
 626  0
         return "surefire";
 627  
     }
 628  
 
 629  
     protected String[] getDefaultIncludes()
 630  
     {
 631  0
         return new String[]{"**/Test*.java", "**/*Test.java", "**/*TestCase.java"};
 632  
     }
 633  
 
 634  
     // now for the implementation of the field accessors
 635  
 
 636  
     public boolean isSkipTests()
 637  
     {
 638  0
         return skipTests;
 639  
     }
 640  
 
 641  
 
 642  
 
 643  
     public void setSkipTests( boolean skipTests )
 644  
     {
 645  0
         this.skipTests = skipTests;
 646  0
     }
 647  
 
 648  
     public boolean isSkipExec()
 649  
     {
 650  0
         return skipExec;
 651  
     }
 652  
 
 653  
     public void setSkipExec( boolean skipExec )
 654  
     {
 655  0
         this.skipExec = skipExec;
 656  0
     }
 657  
 
 658  
     public boolean isSkip()
 659  
     {
 660  0
         return skip;
 661  
     }
 662  
 
 663  
     public void setSkip( boolean skip )
 664  
     {
 665  0
         this.skip = skip;
 666  0
     }
 667  
 
 668  
     public boolean isTestFailureIgnore()
 669  
     {
 670  0
         return testFailureIgnore;
 671  
     }
 672  
 
 673  
     public void setTestFailureIgnore( boolean testFailureIgnore )
 674  
     {
 675  0
         this.testFailureIgnore = testFailureIgnore;
 676  0
     }
 677  
 
 678  
     public File getBasedir()
 679  
     {
 680  0
         return basedir;
 681  
     }
 682  
 
 683  
     public void setBasedir( File basedir )
 684  
     {
 685  0
         this.basedir = basedir;
 686  0
     }
 687  
 
 688  
     public File getTestClassesDirectory()
 689  
     {
 690  0
         return testClassesDirectory;
 691  
     }
 692  
 
 693  
     public void setTestClassesDirectory( File testClassesDirectory )
 694  
     {
 695  0
         this.testClassesDirectory = testClassesDirectory;
 696  0
     }
 697  
 
 698  
     public File getClassesDirectory()
 699  
     {
 700  0
         return classesDirectory;
 701  
     }
 702  
 
 703  
     public void setClassesDirectory( File classesDirectory )
 704  
     {
 705  0
         this.classesDirectory = classesDirectory;
 706  0
     }
 707  
 
 708  
     public MavenProject getProject()
 709  
     {
 710  0
         return project;
 711  
     }
 712  
 
 713  
     public void setProject( MavenProject project )
 714  
     {
 715  0
         this.project = project;
 716  0
     }
 717  
 
 718  
     public List getClasspathDependencyExcludes()
 719  
     {
 720  0
         return classpathDependencyExcludes;
 721  
     }
 722  
 
 723  
     public void setClasspathDependencyExcludes( List classpathDependencyExcludes )
 724  
     {
 725  0
         this.classpathDependencyExcludes = classpathDependencyExcludes;
 726  0
     }
 727  
 
 728  
     public String getClasspathDependencyScopeExclude()
 729  
     {
 730  0
         return classpathDependencyScopeExclude;
 731  
     }
 732  
 
 733  
     public void setClasspathDependencyScopeExclude( String classpathDependencyScopeExclude )
 734  
     {
 735  0
         this.classpathDependencyScopeExclude = classpathDependencyScopeExclude;
 736  0
     }
 737  
 
 738  
     public List getAdditionalClasspathElements()
 739  
     {
 740  0
         return additionalClasspathElements;
 741  
     }
 742  
 
 743  
     public void setAdditionalClasspathElements( List additionalClasspathElements )
 744  
     {
 745  0
         this.additionalClasspathElements = additionalClasspathElements;
 746  0
     }
 747  
 
 748  
     public File getReportsDirectory()
 749  
     {
 750  0
         return reportsDirectory;
 751  
     }
 752  
 
 753  
     public void setReportsDirectory( File reportsDirectory )
 754  
     {
 755  0
         this.reportsDirectory = reportsDirectory;
 756  0
     }
 757  
 
 758  
     public File getTestSourceDirectory()
 759  
     {
 760  0
         return testSourceDirectory;
 761  
     }
 762  
 
 763  
     public void setTestSourceDirectory( File testSourceDirectory )
 764  
     {
 765  0
         this.testSourceDirectory = testSourceDirectory;
 766  0
     }
 767  
 
 768  
     public String getTest()
 769  
     {
 770  0
         return test;
 771  
     }
 772  
 
 773  
     public void setTest( String test )
 774  
     {
 775  0
         this.test = test;
 776  0
     }
 777  
 
 778  
     public List getIncludes()
 779  
     {
 780  0
         return includes;
 781  
     }
 782  
 
 783  
     public void setIncludes( List includes )
 784  
     {
 785  0
         this.includes = includes;
 786  0
     }
 787  
 
 788  
     public List getExcludes()
 789  
     {
 790  0
         return excludes;
 791  
     }
 792  
 
 793  
     public void setExcludes( List excludes )
 794  
     {
 795  0
         this.excludes = excludes;
 796  0
     }
 797  
 
 798  
     public ArtifactRepository getLocalRepository()
 799  
     {
 800  0
         return localRepository;
 801  
     }
 802  
 
 803  
     public void setLocalRepository( ArtifactRepository localRepository )
 804  
     {
 805  0
         this.localRepository = localRepository;
 806  0
     }
 807  
 
 808  
     public Properties getSystemProperties()
 809  
     {
 810  0
         return systemProperties;
 811  
     }
 812  
 
 813  
     public void setSystemProperties( Properties systemProperties )
 814  
     {
 815  0
         this.systemProperties = systemProperties;
 816  0
     }
 817  
 
 818  
     public Map getSystemPropertyVariables()
 819  
     {
 820  0
         return systemPropertyVariables;
 821  
     }
 822  
 
 823  
     public void setSystemPropertyVariables( Map systemPropertyVariables )
 824  
     {
 825  0
         this.systemPropertyVariables = systemPropertyVariables;
 826  0
     }
 827  
 
 828  
     public Properties getProperties()
 829  
     {
 830  0
         return properties;
 831  
     }
 832  
 
 833  
     public void setProperties( Properties properties )
 834  
     {
 835  0
         this.properties = properties;
 836  0
     }
 837  
 
 838  
     public Map getPluginArtifactMap()
 839  
     {
 840  0
         return pluginArtifactMap;
 841  
     }
 842  
 
 843  
     public void setPluginArtifactMap( Map pluginArtifactMap )
 844  
     {
 845  0
         this.pluginArtifactMap = pluginArtifactMap;
 846  0
     }
 847  
 
 848  
     public Map getProjectArtifactMap()
 849  
     {
 850  0
         return projectArtifactMap;
 851  
     }
 852  
 
 853  
     public void setProjectArtifactMap( Map projectArtifactMap )
 854  
     {
 855  0
         this.projectArtifactMap = projectArtifactMap;
 856  0
     }
 857  
 
 858  
     public boolean isPrintSummary()
 859  
     {
 860  0
         return printSummary;
 861  
     }
 862  
 
 863  
     public void setPrintSummary( boolean printSummary )
 864  
     {
 865  0
         this.printSummary = printSummary;
 866  0
     }
 867  
 
 868  
     public String getReportFormat()
 869  
     {
 870  0
         return reportFormat;
 871  
     }
 872  
 
 873  
     public void setReportFormat( String reportFormat )
 874  
     {
 875  0
         this.reportFormat = reportFormat;
 876  0
     }
 877  
 
 878  
     public boolean isUseFile()
 879  
     {
 880  0
         return useFile;
 881  
     }
 882  
 
 883  
     public void setUseFile( boolean useFile )
 884  
     {
 885  0
         this.useFile = useFile;
 886  0
     }
 887  
 
 888  
     public boolean isRedirectTestOutputToFile()
 889  
     {
 890  0
         return redirectTestOutputToFile;
 891  
     }
 892  
 
 893  
     public void setRedirectTestOutputToFile( boolean redirectTestOutputToFile )
 894  
     {
 895  0
         this.redirectTestOutputToFile = redirectTestOutputToFile;
 896  0
     }
 897  
 
 898  
     public Boolean getFailIfNoTests()
 899  
     {
 900  0
         return failIfNoTests;
 901  
     }
 902  
 
 903  
     public void setFailIfNoTests( Boolean failIfNoTests )
 904  
     {
 905  0
         this.failIfNoTests = failIfNoTests;
 906  0
     }
 907  
 
 908  
     public String getForkMode()
 909  
     {
 910  0
         return forkMode;
 911  
     }
 912  
 
 913  
     public void setForkMode( String forkMode )
 914  
     {
 915  0
         this.forkMode = forkMode;
 916  0
     }
 917  
 
 918  
     public String getJvm()
 919  
     {
 920  0
         return jvm;
 921  
     }
 922  
 
 923  
     public void setJvm( String jvm )
 924  
     {
 925  0
         this.jvm = jvm;
 926  0
     }
 927  
 
 928  
     public String getArgLine()
 929  
     {
 930  0
         return argLine;
 931  
     }
 932  
 
 933  
     public void setArgLine( String argLine )
 934  
     {
 935  0
         this.argLine = argLine;
 936  0
     }
 937  
 
 938  
     public String getDebugForkedProcess()
 939  
     {
 940  0
         return debugForkedProcess;
 941  
     }
 942  
 
 943  
     public void setDebugForkedProcess( String debugForkedProcess )
 944  
     {
 945  0
         this.debugForkedProcess = debugForkedProcess;
 946  0
     }
 947  
 
 948  
     public int getForkedProcessTimeoutInSeconds()
 949  
     {
 950  0
         return forkedProcessTimeoutInSeconds;
 951  
     }
 952  
 
 953  
     public void setForkedProcessTimeoutInSeconds( int forkedProcessTimeoutInSeconds )
 954  
     {
 955  0
         this.forkedProcessTimeoutInSeconds = forkedProcessTimeoutInSeconds;
 956  0
     }
 957  
 
 958  
     public Map getEnvironmentVariables()
 959  
     {
 960  0
         return environmentVariables;
 961  
     }
 962  
 
 963  
     public void setEnvironmentVariables( Map environmentVariables )
 964  
     {
 965  0
         this.environmentVariables = environmentVariables;
 966  0
     }
 967  
 
 968  
     public File getWorkingDirectory()
 969  
     {
 970  0
         return workingDirectory;
 971  
     }
 972  
 
 973  
     public void setWorkingDirectory( File workingDirectory )
 974  
     {
 975  0
         this.workingDirectory = workingDirectory;
 976  0
     }
 977  
 
 978  
     public boolean isChildDelegation()
 979  
     {
 980  0
         return childDelegation;
 981  
     }
 982  
 
 983  
     public void setChildDelegation( boolean childDelegation )
 984  
     {
 985  0
         this.childDelegation = childDelegation;
 986  0
     }
 987  
 
 988  
     public String getGroups()
 989  
     {
 990  0
         return groups;
 991  
     }
 992  
 
 993  
     public void setGroups( String groups )
 994  
     {
 995  0
         this.groups = groups;
 996  0
     }
 997  
 
 998  
     public String getExcludedGroups()
 999  
     {
 1000  0
         return excludedGroups;
 1001  
     }
 1002  
 
 1003  
     public void setExcludedGroups( String excludedGroups )
 1004  
     {
 1005  0
         this.excludedGroups = excludedGroups;
 1006  0
     }
 1007  
 
 1008  
     public File[] getSuiteXmlFiles()
 1009  
     {
 1010  0
         return suiteXmlFiles;
 1011  
     }
 1012  
 
 1013  
     public void setSuiteXmlFiles( File[] suiteXmlFiles )
 1014  
     {
 1015  0
         this.suiteXmlFiles = suiteXmlFiles;
 1016  0
     }
 1017  
 
 1018  
     public String getJunitArtifactName()
 1019  
     {
 1020  0
         return junitArtifactName;
 1021  
     }
 1022  
 
 1023  
     public void setJunitArtifactName( String junitArtifactName )
 1024  
     {
 1025  0
         this.junitArtifactName = junitArtifactName;
 1026  0
     }
 1027  
 
 1028  
     public String getTestNGArtifactName()
 1029  
     {
 1030  0
         return testNGArtifactName;
 1031  
     }
 1032  
 
 1033  
     public void setTestNGArtifactName( String testNGArtifactName )
 1034  
     {
 1035  0
         this.testNGArtifactName = testNGArtifactName;
 1036  0
     }
 1037  
 
 1038  
     public int getThreadCount()
 1039  
     {
 1040  0
         return threadCount;
 1041  
     }
 1042  
 
 1043  
     public void setThreadCount( int threadCount )
 1044  
     {
 1045  0
         this.threadCount = threadCount;
 1046  0
     }
 1047  
 
 1048  
     public String getPerCoreThreadCount()
 1049  
     {
 1050  0
         return perCoreThreadCount;
 1051  
     }
 1052  
 
 1053  
     public void setPerCoreThreadCount( String perCoreThreadCount )
 1054  
     {
 1055  0
         this.perCoreThreadCount = perCoreThreadCount;
 1056  0
     }
 1057  
 
 1058  
     public String getUseUnlimitedThreads()
 1059  
     {
 1060  0
         return useUnlimitedThreads;
 1061  
     }
 1062  
 
 1063  
     public void setUseUnlimitedThreads( String useUnlimitedThreads )
 1064  
     {
 1065  0
         this.useUnlimitedThreads = useUnlimitedThreads;
 1066  0
     }
 1067  
 
 1068  
     public String getParallel()
 1069  
     {
 1070  0
         return parallel;
 1071  
     }
 1072  
 
 1073  
     public void setParallel( String parallel )
 1074  
     {
 1075  0
         this.parallel = parallel;
 1076  0
     }
 1077  
 
 1078  
     public boolean isTrimStackTrace()
 1079  
     {
 1080  0
         return trimStackTrace;
 1081  
     }
 1082  
 
 1083  
     public void setTrimStackTrace( boolean trimStackTrace )
 1084  
     {
 1085  0
         this.trimStackTrace = trimStackTrace;
 1086  0
     }
 1087  
 
 1088  
     public ArtifactResolver getArtifactResolver()
 1089  
     {
 1090  0
         return artifactResolver;
 1091  
     }
 1092  
 
 1093  
     public void setArtifactResolver( ArtifactResolver artifactResolver )
 1094  
     {
 1095  0
         this.artifactResolver = artifactResolver;
 1096  0
     }
 1097  
 
 1098  
     public ArtifactFactory getArtifactFactory()
 1099  
     {
 1100  0
         return artifactFactory;
 1101  
     }
 1102  
 
 1103  
     public void setArtifactFactory( ArtifactFactory artifactFactory )
 1104  
     {
 1105  0
         this.artifactFactory = artifactFactory;
 1106  0
     }
 1107  
 
 1108  
     public List getRemoteRepositories()
 1109  
     {
 1110  0
         return remoteRepositories;
 1111  
     }
 1112  
 
 1113  
     public void setRemoteRepositories( List remoteRepositories )
 1114  
     {
 1115  0
         this.remoteRepositories = remoteRepositories;
 1116  0
     }
 1117  
 
 1118  
     public ArtifactMetadataSource getMetadataSource()
 1119  
     {
 1120  0
         return metadataSource;
 1121  
     }
 1122  
 
 1123  
     public void setMetadataSource( ArtifactMetadataSource metadataSource )
 1124  
     {
 1125  0
         this.metadataSource = metadataSource;
 1126  0
     }
 1127  
 
 1128  
     public Properties getOriginalSystemProperties()
 1129  
     {
 1130  0
         return originalSystemProperties;
 1131  
     }
 1132  
 
 1133  
     public void setOriginalSystemProperties( Properties originalSystemProperties )
 1134  
     {
 1135  0
         this.originalSystemProperties = originalSystemProperties;
 1136  0
     }
 1137  
 
 1138  
     public Properties getInternalSystemProperties()
 1139  
     {
 1140  0
         return internalSystemProperties;
 1141  
     }
 1142  
 
 1143  
     public void setInternalSystemProperties( Properties internalSystemProperties )
 1144  
     {
 1145  0
         this.internalSystemProperties = internalSystemProperties;
 1146  0
     }
 1147  
 
 1148  
     public boolean isDisableXmlReport()
 1149  
     {
 1150  0
         return disableXmlReport;
 1151  
     }
 1152  
 
 1153  
     public void setDisableXmlReport( boolean disableXmlReport )
 1154  
     {
 1155  0
         this.disableXmlReport = disableXmlReport;
 1156  0
     }
 1157  
 
 1158  
     public Boolean getUseSystemClassLoader()
 1159  
     {
 1160  0
         return useSystemClassLoader;
 1161  
     }
 1162  
 
 1163  
     public void setUseSystemClassLoader( Boolean useSystemClassLoader )
 1164  
     {
 1165  0
         this.useSystemClassLoader = useSystemClassLoader;
 1166  0
     }
 1167  
 
 1168  
     public boolean isUseManifestOnlyJar()
 1169  
     {
 1170  0
         return useManifestOnlyJar;
 1171  
     }
 1172  
 
 1173  
     public void setUseManifestOnlyJar( boolean useManifestOnlyJar )
 1174  
     {
 1175  0
         this.useManifestOnlyJar = useManifestOnlyJar;
 1176  0
     }
 1177  
 
 1178  
     public boolean isEnableAssertions()
 1179  
     {
 1180  0
         return enableAssertions;
 1181  
     }
 1182  
 
 1183  
     public void setEnableAssertions( boolean enableAssertions )
 1184  
     {
 1185  0
         this.enableAssertions = enableAssertions;
 1186  0
     }
 1187  
 
 1188  
     public MavenSession getSession()
 1189  
     {
 1190  0
         return session;
 1191  
     }
 1192  
 
 1193  
     public void setSession( MavenSession session )
 1194  
     {
 1195  0
         this.session = session;
 1196  0
     }
 1197  
 
 1198  
     public String getObjectFactory()
 1199  
     {
 1200  0
         return objectFactory;
 1201  
     }
 1202  
 
 1203  
     public void setObjectFactory( String objectFactory )
 1204  
     {
 1205  0
         this.objectFactory = objectFactory;
 1206  0
     }
 1207  
 
 1208  
     public ToolchainManager getToolchainManager()
 1209  
     {
 1210  0
         return toolchainManager;
 1211  
     }
 1212  
 
 1213  
     public void setToolchainManager( ToolchainManager toolchainManager )
 1214  
     {
 1215  0
         this.toolchainManager = toolchainManager;
 1216  0
     }
 1217  
 
 1218  
     public boolean isMavenParallel()
 1219  
     {
 1220  0
         return parallelMavenExecution  != null && parallelMavenExecution.booleanValue();
 1221  
     }
 1222  
     
 1223  
 
 1224  
 }