View Javadoc

1   package org.apache.maven.surefire.providerapi;
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 org.apache.maven.surefire.report.ReporterConfiguration;
23  import org.apache.maven.surefire.report.ReporterFactory;
24  import org.apache.maven.surefire.testset.DirectoryScannerParameters;
25  import org.apache.maven.surefire.testset.TestArtifactInfo;
26  import org.apache.maven.surefire.testset.TestRequest;
27  import org.apache.maven.surefire.util.DirectoryScanner;
28  
29  import java.util.Properties;
30  
31  /**
32   * Injected into the providers upon provider construction. Allows the provider to request services and data it needs.
33   *
34   * NOTE: This class is part of the proposed public api for surefire providers from 2.7 and up. It may
35   * still be subject to changes, even for minor revisions.
36   *
37   * The api covers this interface and all the types reachable from it. And nothing else.
38   *
39   * @author Kristian Rosenvold
40   */
41  public interface ProviderParameters
42  {
43      /**
44       * Provides a directory scanner that enforces the includes/excludes parameters that were passed to surefire.
45       * See #getDirectoryScannerParameters for details
46       *
47       * @return The directory scanner
48       */
49      DirectoryScanner getDirectoryScanner();
50  
51      /**
52       * Provides features for creating reporting objects
53       *
54       * @return A ReporterFactory that allows the creation of one or more ReporterManagers
55       */
56      ReporterFactory getReporterFactory();
57  
58      /**
59       * The raw parameters used in creating the directory scanner
60       *
61       * @return The parameters
62       */
63      DirectoryScannerParameters getDirectoryScannerParameters();
64  
65      /**
66       * The raw parameters used in creating the ReporterManagerFactory
67       *
68       * @return The reporter configuration
69       */
70      ReporterConfiguration getReporterConfiguration();
71  
72      /**
73       * Contains information about requested test suites or individual tests from the command line.
74       *
75       * @return The testRequest
76       */
77  
78      TestRequest getTestRequest();
79  
80      /**
81       * The class loader for the tests
82       *
83       * @return the classloader
84       */
85      ClassLoader getTestClassLoader();
86  
87      /**
88       * The per-provider specific properties that may come all the way from the plugin's properties setting.
89       *
90       * @return the provider specific properties
91       */
92      Properties getProviderProperties();
93  
94      /**
95       * Artifact info about the artifact used to autodetect provider
96       *
97       * @return The artifactinfo, or null if autodetect was not used.
98       */
99      TestArtifactInfo getTestArtifactInfo();
100 }