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.
     
  
 |