JBehave
  1. JBehave
  2. JBEHAVE-424

Test run with Eclipse but no with maven

    Details

    • Type: Bug Bug
    • Status: Open Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 3.1.2
    • Fix Version/s: None
    • Component/s: Maven Plugin
    • Labels:
      None
    • Environment:
    • Number of attachments :
      1

      Description

      I want to integrate Jbehave with maven and have a lot of troubles. I attach a sample with an example. The Story pass if I run as Junit test in eclipse, but when I try with maven fail.

      Is a classloader problem. The exception is:
      org.springframework.beans.factory.BeanDefinitionStoreException: IOException pars
      ing XML document from class path resource [applicationContext.xml]; nested excep
      tion is java.io.FileNotFoundException: class path resource [applicationContext.x
      ml] cannot be opened because it does not exist

      But to fix this I must pass ALL dependencies to the plugin.

      I hope there is a solution to this. Thanks.

        Activity

        Hide
        Mauro Talevi added a comment -

        The problem seems to suggest you're not adding the applicationContext.xml as a resource and therefore it never gets added to the classpath.

        To verify that this is the case simply look in target/classes after you've done a Maven build and see it the file is there. If not, configure your POM resources to add it.

        There are plenty of examples, e.g. a Spring security one, that may help you (http://jbehave.org/reference/stable/examples-philosophy.html).

        Show
        Mauro Talevi added a comment - The problem seems to suggest you're not adding the applicationContext.xml as a resource and therefore it never gets added to the classpath. To verify that this is the case simply look in target/classes after you've done a Maven build and see it the file is there. If not, configure your POM resources to add it. There are plenty of examples, e.g. a Spring security one, that may help you ( http://jbehave.org/reference/stable/examples-philosophy.html ).
        Hide
        Gardella Juan Pablo added a comment -

        Hi Mauro,

        First, thanks for your time. You can see the sample to reproduce the error. The file applicationContext.xml is in src/test/resources and is in classpath when maven run the tests. So your solution don't apply.

        Juan

        Show
        Gardella Juan Pablo added a comment - Hi Mauro, First, thanks for your time. You can see the sample to reproduce the error. The file applicationContext.xml is in src/test/resources and is in classpath when maven run the tests. So your solution don't apply. Juan
        Hide
        Jonathan Woods added a comment -

        Juan -

        Have you really checked that applicationContext.xml is in target/test-classes?

        When this happens for me, it's because Eclipse/m2eclipse/Maven hasn't bothered to copy across the resource. Sometimes, modifying then saving it is enough to cause the copying to take place.

        Jon

        Show
        Jonathan Woods added a comment - Juan - Have you really checked that applicationContext.xml is in target/test-classes? When this happens for me, it's because Eclipse/m2eclipse/Maven hasn't bothered to copy across the resource. Sometimes, modifying then saving it is enough to cause the copying to take place. Jon
        Hide
        Gardella Juan Pablo added a comment -

        Hi Jon,

        Thanks for your time. Yes applicationContext.xml is in target\test-classes. You can download the sample and run mvn packate to reproduce the error.

        Juan

        Show
        Gardella Juan Pablo added a comment - Hi Jon, Thanks for your time. Yes applicationContext.xml is in target\test-classes. You can download the sample and run mvn packate to reproduce the error. Juan
        Hide
        Jonathan Woods added a comment - - edited

        This time, I've actually downloaded your sample (apologies for not trying the first time).

        At first glance, it looks as though it's because Eclipse unhelpfully merges compile and test scope, wrongly treating them the same; but Maven rightly doesn't. So your Spring config, which is test scope, simply isn't visible in the Maven runtime classpath.

        But I'll double-check and report back.

        Show
        Jonathan Woods added a comment - - edited This time, I've actually downloaded your sample (apologies for not trying the first time). At first glance, it looks as though it's because Eclipse unhelpfully merges compile and test scope, wrongly treating them the same; but Maven rightly doesn't. So your Spring config, which is test scope, simply isn't visible in the Maven runtime classpath. But I'll double-check and report back.

          People

          • Assignee:
            Unassigned
            Reporter:
            Gardella Juan Pablo
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated: