You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ma...@apache.org on 2020/07/15 06:48:40 UTC
[maven-integration-testing] 01/01: [MNG-5760] Added more testcases
for the --resume feature.
This is an automated email from the ASF dual-hosted git repository.
martinkanters pushed a commit to branch mng-5760-resume-feature-2
in repository https://gitbox.apache.org/repos/asf/maven-integration-testing.git
commit 68e8e36772edcc439a37968fddcd4228ba5b75e0
Author: Maarten Mulders <ma...@infosupport.com>
AuthorDate: Sat Jun 20 22:24:09 2020 +0200
[MNG-5760] Added more testcases for the --resume feature.
Enable test for --resume feature
Verifying that resuming the build works when the resume.properties file does not have excludedProjects to skip in the next build.
Enabled back temporarily ignored test.
Added a test case for the --resume feature to skip failed modules after the first multi module project failed.
Maven invocations without project shouldn't fail
---
.../org/apache/maven/it/IntegrationTestSuite.java | 3 +-
.../maven/it/MavenITmng5760ResumeFeatureTest.java | 73 ++++++++++++++++++++--
.../{ => parent-dependent}/module-a/pom.xml | 0
.../test/java/org/apache/maven/it/TestCase.java | 0
.../{ => parent-dependent}/module-b/pom.xml | 0
.../test/java/org/apache/maven/it/TestCase.java | 0
.../{ => parent-dependent}/module-c/pom.xml | 0
.../test/java/org/apache/maven/it/TestCase.java | 0
.../{ => parent-dependent}/pom.xml | 0
.../{ => parent-independent}/module-a/pom.xml | 17 +++--
.../test/java/org/apache/maven/it/TestCase.java | 0
.../{ => parent-independent}/module-b/pom.xml | 17 +++--
.../test/java/org/apache/maven/it/TestCase.java | 0
.../{ => parent-independent}/pom.xml | 12 +---
14 files changed, 94 insertions(+), 28 deletions(-)
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java b/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java
index 67a2c8e..33dc60b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java
@@ -106,7 +106,8 @@ public class IntegrationTestSuite
// Tests that don't run stable and need to be fixed
// -------------------------------------------------------------------------------------------------------------
// suite.addTestSuite( MavenIT0108SnapshotUpdateTest.class ); -- MNG-3137
-
+
+ suite.addTestSuite( MavenITmng5760ResumeFeatureTest.class );
suite.addTestSuite( MavenITmng6656BuildConsumer.class );
suite.addTestSuite( MavenITmng6562WarnDefaultBindings.class );
suite.addTestSuite( MavenITmng5868NoDuplicateAttachedArtifacts.class );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5760ResumeFeatureTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5760ResumeFeatureTest.java
index aa001a0..7342f31 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5760ResumeFeatureTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5760ResumeFeatureTest.java
@@ -40,11 +40,18 @@ import java.util.List;
* @author Martin Kanters
*/
public class MavenITmng5760ResumeFeatureTest extends AbstractMavenIntegrationTestCase {
- private final File testDir;
+ private final File parentDependentTestDir;
+ private final File parentIndependentTestDir;
+ private final File noProjectTestDir;
public MavenITmng5760ResumeFeatureTest() throws IOException {
super( "[3.7.0,)" );
- this.testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-5760-resume-feature" );
+ this.parentDependentTestDir = ResourceExtractor.simpleExtractResources( getClass(),
+ "/mng-5760-resume-feature/parent-dependent" );
+ this.parentIndependentTestDir = ResourceExtractor.simpleExtractResources( getClass(),
+ "/mng-5760-resume-feature/parent-independent" );
+ this.noProjectTestDir = ResourceExtractor.simpleExtractResources( getClass(),
+ "/mng-5760-resume-feature/no-project" );
}
/**
@@ -52,7 +59,7 @@ public class MavenITmng5760ResumeFeatureTest extends AbstractMavenIntegrationTes
*/
public void testShouldSuggestToResumeWithoutArgs() throws Exception
{
- final Verifier verifier = newVerifier( testDir.getAbsolutePath() );
+ final Verifier verifier = newVerifier( parentDependentTestDir.getAbsolutePath() );
verifier.addCliOption( "-Dmodule-b.fail=true" );
try
@@ -69,11 +76,19 @@ public class MavenITmng5760ResumeFeatureTest extends AbstractMavenIntegrationTes
{
verifier.resetStreams();
}
+
+ // New build with -r should resume the build from module-b, skipping module-a since it has succeeded already.
+ verifier.getCliOptions().clear();
+ verifier.addCliOption( "-r" );
+ verifier.executeGoal( "test" );
+ verifyTextNotInLog( verifier, "Building module-a 1.0" );
+ verifier.verifyTextInLog( "Building module-b 1.0" );
+ verifier.verifyTextInLog( "Building module-c 1.0" );
}
public void testShouldSkipSuccessfulProjects() throws Exception
{
- final Verifier verifier = newVerifier( testDir.getAbsolutePath() );
+ final Verifier verifier = newVerifier( parentDependentTestDir.getAbsolutePath() );
verifier.addCliOption( "-Dmodule-a.fail=true" );
verifier.addCliOption( "--fail-at-end");
@@ -109,6 +124,56 @@ public class MavenITmng5760ResumeFeatureTest extends AbstractMavenIntegrationTes
}
}
+ public void testShouldSkipSuccessfulModulesWhenTheFirstModuleFailed() throws Exception
+ {
+ // In this multi-module project, the submodules are not dependent on the parent.
+ // This results in the parent to be built last, and module-a to be built first.
+ // This enables us to let the first module in the reactor (module-a) fail.
+ final Verifier verifier = newVerifier( parentIndependentTestDir.getAbsolutePath() );
+ verifier.addCliOption( "-Dmodule-a.fail=true" );
+ verifier.addCliOption( "--fail-at-end");
+
+ try
+ {
+ verifier.executeGoal( "test" );
+ fail( "Expected this invocation to fail" );
+ }
+ catch ( final VerificationException ve )
+ {
+ verifier.verifyTextInLog( "mvn <args> -r" );
+ }
+ finally
+ {
+ verifier.resetStreams();
+ }
+
+ verifier.getCliOptions().clear();
+ verifier.addCliOption( "-r" );
+ verifier.executeGoal( "test" );
+ verifier.verifyTextInLog( "Building module-a 1.0" );
+ verifyTextNotInLog( verifier, "Building module-b 1.0" );
+ }
+
+ public void testShouldNotCrashWithoutProject() throws Exception
+ {
+ // There is no Maven project available in the test directory.
+ // As reported in JIRA this would previously break with a NullPointerException.
+ // (see https://issues.apache.org/jira/browse/MNG-5760?focusedCommentId=17143795&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-17143795)
+ final Verifier verifier = newVerifier( noProjectTestDir.getAbsolutePath() );
+ try
+ {
+ verifier.executeGoal( "resources:resources" );
+ }
+ catch ( final VerificationException ve )
+ {
+ verifier.verifyTextInLog( "Goal requires a project to execute but there is no POM in this directory" );
+ }
+ finally
+ {
+ verifier.resetStreams();
+ }
+ }
+
/**
* Throws an exception if the text <strong>is</strong> present in the log.
*
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/module-a/pom.xml b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/module-a/pom.xml
similarity index 100%
copy from core-it-suite/src/test/resources/mng-5760-resume-feature/module-a/pom.xml
copy to core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/module-a/pom.xml
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/module-a/src/test/java/org/apache/maven/it/TestCase.java b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/module-a/src/test/java/org/apache/maven/it/TestCase.java
similarity index 100%
copy from core-it-suite/src/test/resources/mng-5760-resume-feature/module-a/src/test/java/org/apache/maven/it/TestCase.java
copy to core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/module-a/src/test/java/org/apache/maven/it/TestCase.java
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/module-b/pom.xml b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/module-b/pom.xml
similarity index 100%
copy from core-it-suite/src/test/resources/mng-5760-resume-feature/module-b/pom.xml
copy to core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/module-b/pom.xml
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/module-b/src/test/java/org/apache/maven/it/TestCase.java b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/module-b/src/test/java/org/apache/maven/it/TestCase.java
similarity index 100%
copy from core-it-suite/src/test/resources/mng-5760-resume-feature/module-b/src/test/java/org/apache/maven/it/TestCase.java
copy to core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/module-b/src/test/java/org/apache/maven/it/TestCase.java
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/module-c/pom.xml b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/module-c/pom.xml
similarity index 100%
rename from core-it-suite/src/test/resources/mng-5760-resume-feature/module-c/pom.xml
rename to core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/module-c/pom.xml
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/module-c/src/test/java/org/apache/maven/it/TestCase.java b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/module-c/src/test/java/org/apache/maven/it/TestCase.java
similarity index 100%
rename from core-it-suite/src/test/resources/mng-5760-resume-feature/module-c/src/test/java/org/apache/maven/it/TestCase.java
rename to core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/module-c/src/test/java/org/apache/maven/it/TestCase.java
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/pom.xml b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/pom.xml
similarity index 100%
copy from core-it-suite/src/test/resources/mng-5760-resume-feature/pom.xml
copy to core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/pom.xml
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/module-a/pom.xml b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/module-a/pom.xml
similarity index 77%
rename from core-it-suite/src/test/resources/mng-5760-resume-feature/module-a/pom.xml
rename to core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/module-a/pom.xml
index 2fc5193..b7a0c07 100644
--- a/core-it-suite/src/test/resources/mng-5760-resume-feature/module-a/pom.xml
+++ b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/module-a/pom.xml
@@ -25,12 +25,17 @@ under the License.
<modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven.its.mng5760.parentindependent</groupId>
<artifactId>module-a</artifactId>
-
- <parent>
- <groupId>org.apache.maven.its.mng5760</groupId>
- <artifactId>parent</artifactId>
- <version>1.0</version>
- </parent>
+ <version>1.0</version>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.12</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
</project>
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/module-a/src/test/java/org/apache/maven/it/TestCase.java b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/module-a/src/test/java/org/apache/maven/it/TestCase.java
similarity index 100%
rename from core-it-suite/src/test/resources/mng-5760-resume-feature/module-a/src/test/java/org/apache/maven/it/TestCase.java
rename to core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/module-a/src/test/java/org/apache/maven/it/TestCase.java
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/module-b/pom.xml b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/module-b/pom.xml
similarity index 77%
rename from core-it-suite/src/test/resources/mng-5760-resume-feature/module-b/pom.xml
rename to core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/module-b/pom.xml
index d415157..4b8e415 100644
--- a/core-it-suite/src/test/resources/mng-5760-resume-feature/module-b/pom.xml
+++ b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/module-b/pom.xml
@@ -25,12 +25,17 @@ under the License.
<modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven.its.mng5760.parentindependent</groupId>
<artifactId>module-b</artifactId>
-
- <parent>
- <groupId>org.apache.maven.its.mng5760</groupId>
- <artifactId>parent</artifactId>
- <version>1.0</version>
- </parent>
+ <version>1.0</version>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.12</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
</project>
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/module-b/src/test/java/org/apache/maven/it/TestCase.java b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/module-b/src/test/java/org/apache/maven/it/TestCase.java
similarity index 100%
rename from core-it-suite/src/test/resources/mng-5760-resume-feature/module-b/src/test/java/org/apache/maven/it/TestCase.java
rename to core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/module-b/src/test/java/org/apache/maven/it/TestCase.java
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/pom.xml b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/pom.xml
similarity index 83%
rename from core-it-suite/src/test/resources/mng-5760-resume-feature/pom.xml
rename to core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/pom.xml
index ca797e0..45463c5 100644
--- a/core-it-suite/src/test/resources/mng-5760-resume-feature/pom.xml
+++ b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/pom.xml
@@ -24,7 +24,7 @@ under the License.
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
- <groupId>org.apache.maven.its.mng5760</groupId>
+ <groupId>org.apache.maven.its.mng5760.parentindependent</groupId>
<artifactId>parent</artifactId>
<version>1.0</version>
@@ -44,16 +44,6 @@ under the License.
<modules>
<module>module-a</module>
<module>module-b</module>
- <module>module-c</module>
</modules>
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.12</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
</project>