Under the hood ScenarioClassNameFinder uses Ant's DirectoryScanner, which can be customised to have certain categories excluded by default, scm files or directories being one of them.

But one sure way to have lookup work is to specify a bit more the include pattern to include the parent dir of the scenario classes,
e.g. **/scenarios/*Scenario.java (or whatever the parent dir is).

The problem is that **/*Scenario.java matches the svn files which
are used to provide the baseline for offline operations.

I've created http://jira.codehaus.org/browse/JBEHAVE-207 to track this.

Cheers

Joris wijlens wrote:
Hi,

Mauro thanks for the quick reply.

I don't see why **/*Scenario.java matches .svn/entries. I often use this construction in ant / maven related situations and it never gives me problems. Why is this a problem with Jbehave?

But of course I tried what you proposed (and I think I already tried it before)

<plugin>
        <groupId>org.jbehave</groupId>
        <artifactId>jbehave-maven-plugin</artifactId>
        <version>2.3.2</version>
        <executions>
          <execution>
            <id>run-scenarios-found</id>
            <phase>integration-test</phase>
            <configuration>
              <scenarioincludes>
                <scenarioinclude>**/*Scenario.java</scenarioinclude>
              </scenarioincludes>
              <scenarioexcludes>
                <scenarioexclude>**/.svn/*</scenarioexclude>
              </scenarioexcludes>
              <classloaderinjected>false</classloaderinjected>
            </configuration>
            <goals>
              <goal>run-scenarios</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

but i still get the same error.

2009/11/14 Mauro Talevi <[email protected] <mailto:[email protected]>>

    Joris,

    the problem is that the include pattern **/*Scenario.jar is picking
    up the .svn entry as well.  To workaround, either specify the
    pattern further, e.g. **/scenarios/*Scenario.jar, or add exclude pattarn
    **/.svn/*

    It should perhaps be made the default behaviour to exclude SCM
    directories.

    Cheers


    Joris wijlens wrote:

        Hi,

        I have the following pom:

        <?xml version="1.0" encoding="UTF-8"?>
        <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";>
         ....
         <build>
           <plugins>
             <plugin>
               <groupId>org.jbehave</groupId>
               <artifactId>jbehave-maven-plugin</artifactId>
               <version>2.3.2</version>
               <executions>
                 <execution>
                   <id>run-scenarios-found</id>
                   <phase>integration-test</phase>
                   <configuration>
                     <scenarioincludes>
                       <scenarioinclude>**/*Scenario.java</scenarioinclude>
                     </scenarioincludes>
                     <classloaderinjected>false</classloaderinjected>
                     <skip>false</skip>
                   </configuration>
                   <goals>
                     <goal>run-scenarios</goal>
                   </goals>
                 </execution>
               </executions>
             </plugin>
           </plugins>
         </build>

         <dependencies>
           ....
           <dependency>
             <groupId>org.jbehave</groupId>
             <artifactId>jbehave-core</artifactId>
             <version>2.3.2</version>
           </dependency>
         </dependencies>
        </project>

        when i run mvn install i get the folowing exception

        [INFO] Trace
        org.jbehave.scenario.errors.InvalidScenarioClassPathException:
        Invalid scenario
        class path .svn\entries
               at
        org.jbehave.scenario.parser.ScenarioClassNameFinder.classNameFor(Scen
        arioClassNameFinder.java:53)
               at
        org.jbehave.scenario.parser.ScenarioClassNameFinder.listScenarioClass
        Names(ScenarioClassNameFinder.java:41)
               at
        org.jbehave.mojo.AbstractScenarioMojo.findScenarioClassNames(Abstract
        ScenarioMojo.java:130)
               at
        org.jbehave.mojo.AbstractScenarioMojo.scenarios(AbstractScenarioMojo.
        java:184)
               at
        org.jbehave.mojo.ScenarioRunnerMojo.execute(ScenarioRunnerMojo.java:2
        0)
               at
        org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPlugi
        nManager.java:451)
               at
        org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa
        ultLifecycleExecutor.java:558)
               at
        org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLi
        fecycle(DefaultLifecycleExecutor.java:499)
               at
        org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(Defau
        ltLifecycleExecutor.java:478)
               at
        org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHan
        dleFailures(DefaultLifecycleExecutor.java:330)
               at
        org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmen
        ts(DefaultLifecycleExecutor.java:291)
               at
        org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLi
        fecycleExecutor.java:142)
               at
        org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336)
               at
        org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129)
               at org.apache.maven.cli.MavenCli.main(MavenCli.java:287)
               at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
        Method)
               at
        sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
        java:39)
               at
        sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
        sorImpl.java:25)
               at java.lang.reflect.Method.invoke(Method.java:597)
               at
        org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
               at
        org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
               at
        org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)

               at org.codehaus.classworlds.Launcher.main(Launcher.java:375)

        It probably has something to do with my project being a
        subversion working copy.

        What do I have to do to fix it?

-- Thanks,

        Joris Wijlens



    ---------------------------------------------------------------------
    To unsubscribe from this list, please visit:

      http://xircles.codehaus.org/manage_email





--
Met vriendelijke groet,

Joris Wijlens

Tel. 06-28419140


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email


Reply via email to