Hello,
Mauro was right: my resource were not copied to target/test-classes. I have
now added:
<testResource>
<directory>src/test/java</directory>
<includes>
<include>**/*.story</include>
</includes>
</testResource>
to my pom.xml and my stories are now picked up properly.
Regards,
Julien.
2012/9/30 Julien Martin <[email protected]>
> Hi Mauro and thanks for your reply,
> It is now working again. What worries me is that I am not sure what caused
> it to work again so I can't provide an explanation on this mailing list...
> I'll do as you advised if I experience other issues with the stories not
> being found.
> Regards,
> Julien.
>
>
>
> 2012/9/30 Mauro Talevi <[email protected]>
>
>> Hi Julien,
>>
>> difficult to help you if you don't provide a self-contained project (not
>> just the config) reproducing your behaviour and provide us with infos on
>> the running env, OS, version etc ...
>>
>> OTOH, I'd say it could be that the StepFinder returns an empty list
>> because of some peculiarity in your config.
>>
>> Are you sure the story files are copied to the target/classes directory?
>> I'd put a breakpoint in storyPaths() to investigate.
>>
>> Also, depending on the version of JBehave you're using, on Windows spaces
>> in the paths could lead to story paths not being found.
>>
>> Cheers
>>
>>
>> On 30/09/2012 09:16, Julien Martin wrote:
>>
>> Hello,
>>
>> I have a configuration issue with JBehave: only BeforeStories and
>> AfterStories are run. It seems my stories (*.story) are not found.. They
>> are located in this package: *com.kadjoukor.jbehave.stories*
>>
>> I think the problem started occuring after I added the failsafe and
>> jbehave plugins in my maven config.
>>
>> Here is my java config:*
>>
>> public class KadjoukorWebStories extends JUnitStories {
>>
>> private WebDriverProvider driverProvider = new
>> PropertyWebDriverProvider();
>> private WebDriverSteps lifecycleSteps = new
>> PerStoriesWebDriverSteps(driverProvider); // or
>>
>> // PerStoryWebDriverSteps(driverProvider)
>> private Pages pages = new Pages(driverProvider);
>> private SeleniumContext context = new SeleniumContext();
>> private ContextView contextView = new
>> LocalFrameContextView().sized(500, 100);
>>
>> public KadjoukorWebStories() {
>> // If configuring lifecycle per-stories, you need to ensure that
>> you a
>> // same-thread executor
>> if (lifecycleSteps instanceof PerStoriesWebDriverSteps) {
>>
>> configuredEmbedder().useExecutorService(MoreExecutors.sameThreadExecutor());
>> }
>> }
>>
>> @Override
>> public Configuration configuration() {
>> Class<? extends Embeddable> embeddableClass = this.getClass();
>> return new SeleniumConfiguration()
>> .useSeleniumContext(context)
>> .useWebDriverProvider(driverProvider)
>> .useStepMonitor(new SeleniumStepMonitor(contextView,
>> context, new SilentStepMonitor()))
>> .useStoryLoader(new LoadFromClasspath(embeddableClass))
>> .useStoryReporterBuilder(
>> new
>> StoryReporterBuilder().withCodeLocation(codeLocationFromClass(embeddableClass)).withDefaultFormats()
>> .withFormats(CONSOLE, TXT, HTML, XML));
>> }
>>
>> @Override
>> public InjectableStepsFactory stepsFactory() {
>> Configuration configuration = configuration();
>> return new InstanceStepsFactory(configuration, new
>> KadjoukorWebSteps(pages), lifecycleSteps, new
>> WebDriverScreenshotOnFailure(driverProvider,
>> configuration.storyReporterBuilder()));
>> }
>>
>> @Override
>> protected List<String> storyPaths() {
>> return new
>> StoryFinder().findPaths(codeLocationFromClass(this.getClass()).getFile(),
>> asList("**/*.story"), null);
>> }
>>
>> // This Embedder is used by Maven or Ant and it will override
>> anything set
>> // in the constructor
>> public static class SameThreadEmbedder extends Embedder {
>> public SameThreadEmbedder() {
>> useExecutorService(MoreExecutors.sameThreadExecutor());
>> }
>> }
>> }*
>>
>>
>> Here is my Maven configuration:
>>
>> * <plugin>
>> <groupId>org.apache.tomcat.maven</groupId>
>> <artifactId>tomcat7-maven-plugin</artifactId>
>> <version>2.0</version>
>> <configuration>
>> <fork>true</fork>
>> </configuration>
>> <executions>
>> <execution>
>> <id>start-tomcat</id>
>> <phase>pre-integration-test</phase>
>> <goals>
>> <goal>run</goal>
>> </goals>
>> </execution>
>> <execution>
>> <id>stop-tomcat</id>
>> <phase>post-integration-test</phase>
>> <goals>
>> <goal>shutdown</goal>
>> </goals>
>> </execution>
>> </executions>
>> </plugin>
>> <plugin>
>> <groupId>org.jbehave</groupId>
>> <artifactId>jbehave-maven-plugin</artifactId>
>> <version>3.6.9</version>
>> <executions>
>> <execution>
>> <id>run-stories</id>
>> <phase>integration-test</phase>
>> <configuration>
>> <includes>
>> <include>**/*Stories.java</include>
>> </includes>
>>
>> <executorsClass>org.jbehave.core.embedder.executors.SameThreadExecutors</executorsClass>
>> <scope>test</scope>
>> <systemProperties>
>> <property>
>> <name>java.awt.headless</name>
>> <value>false</value>
>> </property>
>> </systemProperties>
>>
>> <ignoreFailureInStories>false</ignoreFailureInStories>
>>
>> <ignoreFailureInView>false</ignoreFailureInView>
>> </configuration>
>> <goals>
>> <goal>run-stories-as-embeddables</goal>
>> </goals>
>> </execution>
>> </executions>
>> <dependencies>
>> <dependency>
>> <groupId>log4j</groupId>
>> <artifactId>log4j</artifactId>
>> <version>1.2.16</version>
>> </dependency>
>> <dependency>
>> <groupId>com.google.guava</groupId>
>> <artifactId>guava</artifactId>
>> <version>11.0.1</version>
>> </dependency>
>> <dependency>
>> <groupId>org.jbehave.web</groupId>
>> <artifactId>jbehave-web-selenium</artifactId>
>> <version>3.5.4</version>
>> </dependency>
>> </dependencies>
>> </plugin>
>> *
>>
>> Can anyone please help?
>> Regards,
>> Julien.
>>
>>
>>
>