Skip to content

Commit 69c6ced

Browse files
committed
#55 Add flag to skip the tests
1 parent c0104e5 commit 69c6ced

File tree

2 files changed

+113
-102
lines changed

2 files changed

+113
-102
lines changed

README.md

Lines changed: 41 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -4,52 +4,54 @@
44
# utPLSQL-maven-plugin
55
* A maven plugin for running Unit Tests with utPLSQL v3+.
66

7-
### Compatibility
7+
## Compatibility
88
* This plugin is compatible with utPLSQL 3.1.0+.
99

10-
### Prerequisites
10+
## Prerequisites
1111
* Java SE Runtime Environment 8
1212
* Maven Version 3.5+
1313

14-
The plugin requires Oracle JDBC driver (ojdbc8) as a maven dependency.
15-
In order to download the required driver, you need to configure access to Oracle's Maven Repository in your `settings.xml` file.
14+
The plugin requires Oracle JDBC driver (ojdbc8) as a Maven dependency.
1615

17-
http://docs.oracle.com/middleware/1213/core/MAVEN/config_maven_repo.htm#MAVEN9010
16+
```xml
17+
<dependency>
18+
<groupId>com.oracle.database.jdbc</groupId>
19+
<artifactId>ojdbc8</artifactId>
20+
<version>21.3.0.0</version>
21+
</dependency>
22+
```
23+
24+
## Usage
25+
26+
### Skipping Tests
27+
28+
To skip running the tests for a particular project, set the **skipUtplsqlTests** property to true.
29+
30+
```xml
31+
<configuration>
32+
<skipUtplsqlTests>true</skipUtplsqlTests>
33+
</configuration>
34+
```
35+
36+
You can also skip the tests via the command line by executing the following command:
1837

19-
Sections 6.1 and 6.5 are the more important ones, and the only ones you need if you're using the latest Maven version.
38+
mvn install -DskipTests
2039

21-
Below is an example of changes needed to your `settings.xml` file.
40+
#### Skipping by Default
41+
42+
If you want to skip tests by default but want the ability to re-enable tests from the command line, you need to go via a properties section in the pom:
2243

2344
```xml
24-
<settings>
25-
<servers>
26-
<server>
27-
<id>maven.oracle.com</id>
28-
<username>oracle_tech_net_user_name</username>
29-
<password>oracle_tech_net_password</password>
30-
<configuration>
31-
<basicAuthScope>
32-
<host>ANY</host>
33-
<port>ANY</port>
34-
<realm>OAM 11g</realm>
35-
</basicAuthScope>
36-
<httpConfiguration>
37-
<all>
38-
<params>
39-
<property>
40-
<name>http.protocol.allow-circular-redirects</name>
41-
<value>%b,true</value>
42-
</property>
43-
</params>
44-
</all>
45-
</httpConfiguration>
46-
</configuration>
47-
</server>
48-
</servers>
49-
</settings>
45+
<configuration>
46+
<skipUtplsqlTests>true</skipUtplsqlTests>
47+
</configuration>
5048
```
5149

52-
### Usage
50+
This will allow you to run with all tests disabled by default and to run them with this command:
51+
52+
mvn install -DskipTests=false
53+
54+
### Usage Example
5355

5456
Please refer to the following usage example for the parameters descriptions.
5557

@@ -136,6 +138,10 @@ Please refer to the following usage example for the parameters descriptions.
136138
<!-- Defaults to: false -->
137139
<skipCompatibilityCheck>false</skipCompatibilityCheck>
138140

141+
<!-- Skip the tests -->
142+
<!-- Defaults to: false -->
143+
<skipUtplsqlTests>false</skipUtplsqlTests>
144+
139145
<!-- A list of tags to run. -->
140146
<tags>
141147
<tag>test_tag</tag>
@@ -229,7 +235,7 @@ More project samples are available in the src/test/resources directory:
229235
* **type-mapping-project:** this project shows how to use regex and custom type parameters together.
230236
* **owner-param-project:** this project demonstrates how to use sourcesOwner and testsOwner parameters.
231237

232-
### Comparaison with the CLI
238+
## Comparaison with the CLI
233239

234240
| CLI short parameter | CLI long parameter | maven XML path |
235241
| --- | --- | --- |

src/main/java/org/utplsql/maven/plugin/UtPLSQLMojo.java

Lines changed: 72 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,6 @@
11
package org.utplsql.maven.plugin;
22

3-
import java.io.File;
4-
import java.sql.Connection;
5-
import java.sql.SQLException;
6-
import java.util.ArrayList;
7-
import java.util.LinkedHashSet;
8-
import java.util.List;
9-
import java.util.Set;
10-
3+
import oracle.jdbc.pool.OracleDataSource;
114
import org.apache.commons.lang3.StringUtils;
125
import org.apache.maven.model.Resource;
136
import org.apache.maven.plugin.AbstractMojo;
@@ -34,11 +27,17 @@
3427
import org.utplsql.maven.plugin.model.ReporterParameter;
3528
import org.utplsql.maven.plugin.reporter.ReporterWriter;
3629

37-
import oracle.jdbc.pool.OracleDataSource;
30+
import java.io.File;
31+
import java.sql.Connection;
32+
import java.sql.SQLException;
33+
import java.util.ArrayList;
34+
import java.util.LinkedHashSet;
35+
import java.util.List;
36+
import java.util.Set;
3837

3938
/**
4039
* This class expose the {@link TestRunner} interface to Maven.
41-
*
40+
*
4241
* @author Alberto Hernández
4342
*/
4443
@Mojo(name = "test", defaultPhase = LifecyclePhase.TEST)
@@ -130,6 +129,9 @@ public class UtPLSQLMojo extends AbstractMojo {
130129
@Parameter(defaultValue = "${maven.test.failure.ignore}")
131130
protected boolean ignoreFailure;
132131

132+
@Parameter(defaultValue = "${skiptUtplsqlTests}")
133+
protected boolean skiptUtplsqlTests;
134+
133135
// Color in the console, bases on Maven logging configuration.
134136
private boolean colorConsole = MessageUtils.isColorEnabled();
135137

@@ -142,62 +144,65 @@ public class UtPLSQLMojo extends AbstractMojo {
142144
*/
143145
@Override
144146
public void execute() throws MojoExecutionException {
147+
if (skiptUtplsqlTests) {
148+
getLog().debug("utPLSQLTests are skipped.");
149+
} else {
150+
getLog().debug("Java Api Version = " + JavaApiVersionInfo.getVersion());
151+
loadConfFromEnvironment();
145152

146-
getLog().debug("Java Api Version = " + JavaApiVersionInfo.getVersion());
147-
loadConfFromEnvironment();
148-
149-
Connection connection = null;
150-
try {
151-
FileMapperOptions sourceMappingOptions = buildSourcesOptions();
152-
FileMapperOptions testMappingOptions = buildTestsOptions();
153-
OracleDataSource ds = new OracleDataSource();
154-
ds.setURL(url);
155-
ds.setUser(user);
156-
ds.setPassword(password);
157-
connection = ds.getConnection();
158-
159-
Version utlVersion = this.databaseInformation.getUtPlsqlFrameworkVersion(connection);
160-
getLog().info("utPLSQL Version = " + utlVersion);
161-
162-
List<Reporter> reporterList = initReporters(connection, utlVersion, ReporterFactory.createEmpty());
163-
164-
logParameters(sourceMappingOptions, testMappingOptions, reporterList);
165-
166-
TestRunner runner = new TestRunner()
167-
.addPathList(paths)
168-
.addReporterList(reporterList)
169-
.sourceMappingOptions(sourceMappingOptions)
170-
.testMappingOptions(testMappingOptions)
171-
.skipCompatibilityCheck(skipCompatibilityCheck)
172-
.colorConsole(colorConsole)
173-
.addTags(tags)
174-
.randomTestOrder(randomTestOrder)
175-
.randomTestOrderSeed(randomTestOrderSeed)
176-
.failOnErrors(!ignoreFailure);
177-
178-
if (StringUtils.isNotBlank(excludeObject)) {
179-
runner.excludeObject(excludeObject);
180-
}
181-
if (StringUtils.isNotBlank(includeObject)) {
182-
runner.includeObject(includeObject);
183-
}
153+
Connection connection = null;
154+
try {
155+
FileMapperOptions sourceMappingOptions = buildSourcesOptions();
156+
FileMapperOptions testMappingOptions = buildTestsOptions();
157+
OracleDataSource ds = new OracleDataSource();
158+
ds.setURL(url);
159+
ds.setUser(user);
160+
ds.setPassword(password);
161+
connection = ds.getConnection();
162+
163+
Version utlVersion = this.databaseInformation.getUtPlsqlFrameworkVersion(connection);
164+
getLog().info("utPLSQL Version = " + utlVersion);
165+
166+
List<Reporter> reporterList = initReporters(connection, utlVersion, ReporterFactory.createEmpty());
167+
168+
logParameters(sourceMappingOptions, testMappingOptions, reporterList);
169+
170+
TestRunner runner = new TestRunner()
171+
.addPathList(paths)
172+
.addReporterList(reporterList)
173+
.sourceMappingOptions(sourceMappingOptions)
174+
.testMappingOptions(testMappingOptions)
175+
.skipCompatibilityCheck(skipCompatibilityCheck)
176+
.colorConsole(colorConsole)
177+
.addTags(tags)
178+
.randomTestOrder(randomTestOrder)
179+
.randomTestOrderSeed(randomTestOrderSeed)
180+
.failOnErrors(!ignoreFailure);
181+
182+
if (StringUtils.isNotBlank(excludeObject)) {
183+
runner.excludeObject(excludeObject);
184+
}
185+
if (StringUtils.isNotBlank(includeObject)) {
186+
runner.includeObject(includeObject);
187+
}
184188

185-
runner.run(connection);
189+
runner.run(connection);
186190

187-
} catch (SomeTestsFailedException e) {
188-
if (!this.ignoreFailure) {
191+
} catch (SomeTestsFailedException e) {
192+
if (!this.ignoreFailure) {
193+
throw new MojoExecutionException(e.getMessage(), e);
194+
}
195+
} catch (SQLException e) {
189196
throw new MojoExecutionException(e.getMessage(), e);
190-
}
191-
} catch (SQLException e) {
192-
throw new MojoExecutionException(e.getMessage(), e);
193-
} finally {
194-
try {
195-
if (null != connection) {
196-
reporterWriter.writeReporters(connection);
197-
connection.close();
197+
} finally {
198+
try {
199+
if (null != connection) {
200+
reporterWriter.writeReporters(connection);
201+
connection.close();
202+
}
203+
} catch (Exception e) {
204+
getLog().error(e.getMessage(), e);
198205
}
199-
} catch (Exception e) {
200-
getLog().error(e.getMessage(), e);
201206
}
202207
}
203208
}
@@ -223,7 +228,7 @@ private FileMapperOptions buildSourcesOptions() throws MojoExecutionException {
223228
if (defaultSourceDirectory.exists()) {
224229
sources.add(PluginDefault.buildDefaultSource());
225230
} else {
226-
return new FileMapperOptions(new ArrayList<String>());
231+
return new FileMapperOptions(new ArrayList<>());
227232
}
228233
}
229234

@@ -252,7 +257,7 @@ private FileMapperOptions buildSourcesOptions() throws MojoExecutionException {
252257
}
253258

254259
if (sourcesCustomTypeMapping != null && !sourcesCustomTypeMapping.isEmpty()) {
255-
fileMapperOptions.setTypeMappings(new ArrayList<KeyValuePair>());
260+
fileMapperOptions.setTypeMappings(new ArrayList<>());
256261
for (CustomTypeMapping typeMapping : sourcesCustomTypeMapping) {
257262
fileMapperOptions.getTypeMappings()
258263
.add(new KeyValuePair(typeMapping.getCustomMapping(), typeMapping.getType()));
@@ -274,7 +279,7 @@ private FileMapperOptions buildTestsOptions() throws MojoExecutionException {
274279
if (defaultTestDirectory.exists()) {
275280
tests.add(PluginDefault.buildDefaultTest());
276281
} else {
277-
return new FileMapperOptions(new ArrayList<String>());
282+
return new FileMapperOptions(new ArrayList<>());
278283
}
279284
}
280285

@@ -303,7 +308,7 @@ private FileMapperOptions buildTestsOptions() throws MojoExecutionException {
303308
}
304309

305310
if (testsCustomTypeMapping != null && !testsCustomTypeMapping.isEmpty()) {
306-
fileMapperOptions.setTypeMappings(new ArrayList<KeyValuePair>());
311+
fileMapperOptions.setTypeMappings(new ArrayList<>());
307312
for (CustomTypeMapping typeMapping : testsCustomTypeMapping) {
308313
fileMapperOptions.getTypeMappings()
309314
.add(new KeyValuePair(typeMapping.getCustomMapping(), typeMapping.getType()));
@@ -352,7 +357,7 @@ private List<Reporter> initReporters(Connection connection, Version utlVersion,
352357
}
353358

354359
private void logParameters(FileMapperOptions sourceMappingOptions, FileMapperOptions testMappingOptions,
355-
List<Reporter> reporterList) {
360+
List<Reporter> reporterList) {
356361
Log log = getLog();
357362
log.info("Invoking TestRunner with: " + targetDir);
358363

@@ -368,4 +373,4 @@ private void logParameters(FileMapperOptions sourceMappingOptions, FileMapperOpt
368373
log.debug("tests=");
369374
testMappingOptions.getFilePaths().forEach(log::debug);
370375
}
371-
}
376+
}

0 commit comments

Comments
 (0)