Mm..  Is there any way to do what I'm trying though?  Execute one or
more of the tests if and only if?  Maybe by running on different
executions of surefire?

I tried to attach a .zip of my test code, but the message was rejected
as spam.  Here is the sample program as an in-text attachment.  It was
generated with archetype:create and modified to show the problem.

Thank you again for your help,

-- Dan
.
|-- pom.xml
`-- src
   |-- main
   |   `-- java
   |       `-- sample
   |           `-- test
   |               `-- App.java
   `-- test
       `-- java
           `-- sample
               `-- test
                   |-- ExecuteAlwaysTest.java
                   `-- ExecuteSometimesTest.java

pom.xml:
-------------
<project xmlns="http://maven.apache.org/POM/4.0.0";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  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>sample.test</groupId>
  <artifactId>execute-test-conditionally</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>execute-test-conditionally</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>**/ExecuteSometimesTest.java</exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>conditionProfile</id>
      <activation>
        <property>
          <name>some_condition</name>
          <value>true</value>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <executions>
              <execution>
                <id>rareTest</id>
                <goals>
                  <goal>test</goal>
                </goals>
                <phase>test</phase>
                <configuration>
                  <includes>
                    <include>**/ExecuteSometimesTest.java</include>
                  </includes>
                  <excludes />
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>

App.java: (ignore me)
------------------------------
package sample.test;

/**
 * Hello world!
 *
 */
public class App
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    }
}


ExecuteAlwaysTest.java:
------------------------------------

package sample.test;

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;

/**
 * Unit test for simple App.
 */
public class ExecuteAlwaysTest
    extends TestCase
{
    /**
     * Create the test case
     *
     * @param testName name of the test case
     */
    public ExecuteAlwaysTest( String testName )
    {
        super( testName );
    }

    /**
     * Rigourous Test :-)
     */
    public void testApp()
    {
        assertTrue( true );
    }
}

ExecuteSometimesTest.java:
------------------------------------------

package sample.test;

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;

/**
 * Unit test for simple App.
 */
public class ExecuteSometimesTest
    extends TestCase
{
    /**
     * Create the test case
     *
     * @param testName name of the test case
     */
    public ExecuteSometimesTest( String testName )
    {
        super( testName );
    }

    /**
     * Rigourous Test :-)
     */
    public void testApp()
    {
        fail();
    }
}


On Nov 12, 2007 11:07 AM, Wayne Fay <[EMAIL PROTECTED]> wrote:
> Without looking at the code I can't be sure, but I would assume that
> you can't include -and- exclude the same file. Probably the exclude
> list is processed "last' in the code which means it won't run.
>
>
> Wayne
>
> On 11/11/07, Dan Kigelman <[EMAIL PROTECTED]> wrote:
> > Thank you Wayne,
> >
> > I will be careful about that.  It seems it was working on my linux laptop,
> > but I'm sure you've averted some of my future headaches for executing this
> > on all kinds of shells.  I renamed the profile and activation to the
> > following:
> >
> >     <profile>
> >       <id>conditionProfile</id>
> >       <activation>
> >         <property>
> >           <name>some_condition</name>
> >           <value>true</value>
> >         </property>
> >       </activation>
> >       <build>
> >
> > I execute now with "mvn test -Dsome_condition=true" but still with the same
> > result:
> >
> > -------------------------------------------------------
> >  T E S T S
> > -------------------------------------------------------
> > Running sample.test.ExecuteAlwaysTest
> > Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.04 sec
> >
> > Results :
> >
> > Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
> >
> > [INFO] [surefire:test {execution: rareTest}]
> > [INFO] Surefire report directory:
> > /home/danik/workspace/test2/execute-test-conditionally/target/surefire-reports
> >
> > -------------------------------------------------------
> >  T E S T S
> > -------------------------------------------------------
> > There are no tests to run.
> >
> > Results :
> >
> > Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
> >
> > [INFO]
> > ------------------------------------------------------------------------
> > [INFO] BUILD SUCCESSFUL
> > [INFO]
> > ------------------------------------------------------------------------
> >
> > Somehow the second surefire execution includes no tests...
> >
> > -- Dan
> >
> >
> > On Nov 11, 2007 5:41 PM, Wayne Fay <[EMAIL PROTECTED]> wrote:
> >
> > > Try renaming the profile to some_condition, and then using
> > > -Dsome_condition=true. I've never tried to use a property named a-b-c
> > > and I'm not entirely sure how different operating systems pass that to
> > > Java and how it is interpreted prior to handing it to Maven (eg -D, -h
> > > etc). So I would just avoid -'s in profile names, personally.
> > >
> > > Wayne
> > >
> > > On 11/11/07, Dan Kigelman <[EMAIL PROTECTED]> wrote:
> > > > Hello!
> > > >
> > > > I am trying to execute a test if and only if a certain condition is set
> > > > (such as a profile is activated).  The test would fail if it is run on
> > > some
> > > > systems, so I am trying to disable it by default, and run it only when
> > > run
> > > > on the relevant system.
> > > >
> > > > I made a sample project to simplify the problem.  Below is the relevant
> > > part
> > > > my pom:
> > > >
> > > >  <build>
> > > >    <plugins>
> > > >      <plugin>
> > > >        <groupId>org.apache.maven.plugins</groupId>
> > > >        <artifactId>maven-surefire-plugin</artifactId>
> > > >        <configuration>
> > > >          <excludes>
> > > >            <exclude>**/ExecuteSometimesTest.java</exclude>
> > > >          </excludes>
> > > >        </configuration>
> > > >      </plugin>
> > > >    </plugins>
> > > >  </build>
> > > >
> > > >  <profiles>
> > > >    <profile>
> > > >      <id>condition-profile</id>
> > > >      <activation>
> > > >        <property>
> > > >          <name>some-condition</name>
> > > >        </property>
> > > >      </activation>
> > > >      <build>
> > > >        <plugins>
> > > >          <plugin>
> > > >            <groupId>org.apache.maven.plugins</groupId>
> > > >            <artifactId>maven-surefire-plugin</artifactId>
> > > >            <executions>
> > > >              <execution>
> > > >                <id>rare-test</id>
> > > >                <goals>
> > > >                  <goal>test</goal>
> > > >                </goals>
> > > >                <phase>test</phase>
> > > >                <configuration>
> > > >                  <includes>
> > > >                    <include>**/ExecuteSometimesTest.java</include>
> > > >                  </includes>
> > > >                  <excludes />
> > > >                </configuration>
> > > >              </execution>
> > > >            </executions>
> > > >          </plugin>
> > > >        </plugins>
> > > >      </build>
> > > >    </profile>
> > > >  </profiles>
> > > >
> > > > When I execute "mvn test" it works as expected:
> > > > -------------------------------------------------------
> > > >  T E S T S
> > > > -------------------------------------------------------
> > > > Running sample.test.ExecuteAlwaysTest
> > > > Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.085sec
> > > >
> > > > Results :
> > > >
> > > > Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
> > > >
> > > > [INFO]
> > > > ------------------------------------------------------------------------
> > > > [INFO] BUILD SUCCESSFUL
> > > > [INFO]
> > > > ------------------------------------------------------------------------
> > > >
> > > >
> > > > However, when I execute "mvn test -Dsome-condition" the
> > > > ExecuteSometimesTest.java is not executed:
> > > >
> > > > -------------------------------------------------------
> > > >  T E S T S
> > > > -------------------------------------------------------
> > > > Running sample.test.ExecuteAlwaysTest
> > > > Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.04 sec
> > > >
> > > > Results :
> > > >
> > > > Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
> > > >
> > > > [INFO] [surefire:test {execution: rare-test}]
> > > > [INFO] Surefire report directory:
> > > >
> > >
> > /home/danik/workspace/test2/execute-test-conditionally/target/surefire-reports
> > > >
> > > > -------------------------------------------------------
> > > >  T E S T S
> > > > -------------------------------------------------------
> > > > There are no tests to run.
> > > >
> > > > Results :
> > > >
> > > > Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
> > > >
> > > > [INFO]
> > > > ------------------------------------------------------------------------
> > > > [INFO] BUILD SUCCESSFUL
> > > > [INFO]
> > > > ------------------------------------------------------------------------
> > > >
> > > > Am I doing something wrong or is this a known problem?
> > > >
> > > > Help would be much appreciated!!
> > > >
> > > > -- Dan
> > > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > >
> >
>
> ---------------------------------------------------------------------
>
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to