Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tycho-user] Problem with tycho-surefire-plugin and include/exclude patterns

The provided project has nothing to do with Tycho. Please use
maven-users mailing list to ask generic maven user question.

--
Regards,
Igor

On 12-01-27 4:21 PM, Michael Norman wrote:
As requested
---
MikeN

On 27/01/2012 3:46 PM, Igor Fedorenko wrote:
Please attach a zip/tar of the example project.

--
Regards,
Igor

On 12-01-27 11:17 AM, Michael Norman wrote:
Ok, I created an 'example project' based on some tutorials I read - New
Project - > Maven Project -> 'maven-archetype-quickstart'

${project.root}
| .classpath
| .project ...
<projectDescription><name>example-project</name> ...
| pom.xml
|
+---src
| +---main
| | \---java
| | \---org
| | \---example
| | SomeObject.java
| |
| \---test
| \---java
| \---org
| \---example
| \---test
| | AllTests.java
| |
| +---another
| | AnotherNestedTestSuite.java
| |
| \---nested
| NestedTestSuite.java

AllTests is a JUnit4 testsuite that points to nested testsuites that in
turn contain either more testsuites or actual tests:

package org.example.test;

//JUnit4 imports
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

//test imports
import org.example.test.another.AnotherNestedTestSuite;
import org.example.test.nested.NestedTestSuite;

/**
* suite of tests for SomeObject
*/
@RunWith(Suite.class)
@SuiteClasses({
NestedTestSuite.class,
AnotherNestedTestSuite.class
}
)
public class AllTests {
}

package org.example.test.another;

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

public class AnotherNestedTestSuite {

@BeforeClass
static public void setUp() {
System.out.println("one-time setUp for AnotherNestedTestSuite");
}

@AfterClass
static public void tearDown() {
System.out.println("one-time tearDown for AnotherNestedTestSuite");
}

@Test
public void aTest() {
System.out.println("This is another test");
}

}

I added the following to the pom.xml file:

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.9</version>
<executions>
<execution>
<id>test</id>
<phase>test</phase>
<configuration>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
<includes>
<include>**/AllTests.java</include>
</includes>
</configuration>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<executions>
<execution>
<id>generate-test-report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
</plugin>
</plugins>
</reporting>

Everything works as expected when I run 'mvn compile
compiler:testCompile test' - however, if I switch to
'tycho-surefire-plugin' (instead of 'maven-surefire-plugin'), the
<include>**/AllTests.java</include> does
not work.

For this type of simple project (not OSGi, not an Eclipse plugin),
should I stick with 'maven-surefire-plugin'?
What advantages would 'tycho-surefire-plugin' have (if I could get the
include pattern to work)?
---
Mike Norman

P.S. is there a way to get the 'compile' goal to include compiling the
tests?

On 25/01/2012 4:14 AM, Sievers, Jan wrote:
we would need a stripped down sample project demonstrating the issue
to tell if this is a bug or just some configuration problem.

Regards
Jan

From:tycho-user-bounces@xxxxxxxxxxx
[mailto:tycho-user-bounces@xxxxxxxxxxx] On Behalf Of Michael Norman
Sent: Freitag, 20. Januar 2012 21:23
To:tycho-user@xxxxxxxxxxx
Subject: [tycho-user] Problem with tycho-surefire-plugin and
include/exclude patterns

I am trying to get the tycho-surefire-plugin to run a specific test.

My directory layout:

${project.root}
| .classpath
| .project
| build.properties
| pom.xml
| ...
|
+---src
| +---main
| | +---java
| | | \---
| ...
| |
| \---test
| \---java
| \---org
| \---eclipse
| \---persistence
| \---tools
| \---oracleddl
| \---test
| | AllTests.java
| | TestHelper.java
| |
| +---databasetypebuilder
| | DatabaseTypeBuilderTestSuite.java
| | IOTTableDDLTestSuite.java
| | ProcedureDDLTestSuite.java
| | TableDDLTestSuite.java
| | TransformsTestSuite.java
| | TypeResolutionTestSuite.java
| |
| +---ddlparser
| | CaseSensitivePackageTestSuite.java
| | DDLParserTestSuite.java
| | FunctionDDLTestSuite.java
| | PackageDDLTestSuite.java
| | ProcedureDDLTestSuite.java
| | TableDDLTestSuite.java
| | TypeDDLTestSuite.java
| |
| \---visit
| FunctionTypeTest.java
| FunctionTypeVisitor.java
| IntervalTypeTest.java
| IntervalVisitor.java
| PrecisionTypeTest.java
| PrecisionTypeVisitor.java
| ProcedureTypeTest.java
| ProcedureTypeVisitor.java
| SizedTypeTest.java
| SizedTypeVisitor.java
| TableTypeTest.java
| TableTypeVisitor.java
| VisitorsTestSuite.java


The AllTests.java file is annotated with:

@RunWith(Suite.class)
@SuiteClasses({
AdvancedJDBCPackageTestSuite.class,
ComplexPLSQLSFTestSuite.class,
ComplexPLSQLSPTestSuite.class,
CustomSQLTestSuite.class,
.
.
.
VeryLongIdentifierTestSuite.class
}
)

So my goal is to get the tycho-surefire-plugin to run AllTests and
then the rest of the tests are run from there.

In my pom.xml file, I specify the following:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-surefire-plugin</artifactId>
<configuration>
<testSuite>org.eclipse.persistence.tools.oracleddl.test</testSuite>
<testClass>org.eclipse.persistence.tools.oracleddl.test.AllTests</testClass>

<systemProperties combine.children="append">
<db.user>${db.user}</db.user>
<db.pwd>${db.pwd}</db.pwd>
<db.url>${db.url}</db.url>
<db.ddl.create>${db.ddl.create}</db.ddl.create>
<db.ddl.drop>${db.ddl.drop}</db.ddl.drop>
<db.ddl.debug>${db.ddl.debug}</db.ddl.debug>
</systemProperties>
</configuration>
</plugin>
</plugins>
</build>
The<testSuite> and<testClass> elements are ignored and the usual
'**/*Test.java' pattern is being used.

I've tried various combinations of
<excludes>
<exclude>**/*</exclude>
</excludes>
<includes>
<include>**/AllTests.java</include>
</includes>
but nothing seems to work.

Any help would be greatly appreciated.


_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user
_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user



_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user


Back to the top