Hi Mark,

I meant to say that it was weird as it worked in my workspace without
any intervention :).

All,

I've created ARIES-382 which addresses the issue with
maven-paxexam-plugin incorrectly handling snapshot versions retrieved
from a remote repo.

Thanks,
  Bartek

2010/8/18 Mark Nuttall <[email protected]>:
> It's not unusual to have to patch up manual run configurations. For
> examples, mvn runs unit tests in the 'target' directory, which you need to
> set manually if creating individual run targets.
>
> On 18 August 2010 19:12, Bartosz Kowalewski 
> <[email protected]>wrote:
>
>> Hi Alexandros,
>>
>> It's weird that you needed to modify configuration manually. I've just
>> run 'mvn eclipse:eclipse' for the Bluperint itests project and
>> imported it to Eclipse. The .classpath file conatins this line:
>> <classpathentry kind="src" path="src/test/java"
>> output="target/test-classes" including="**/*.java"/>
>> Junit tests run just fine. I did not need to change the launch
>> configuration. The only issue is that Eclipse rebuilds the project
>> that is being imported, so the dependencies.properties file gets
>> removed. I needed to generate it once again before running tests from
>> Eclipse.
>>
>> Oh, there's one more issue. The maven-paxexam-plugin seems to
>> incorrectly generate the .properties file. Resolved snapshot versions
>> are sometimes used instead of the base ones. This is similar to
>> ARIES-364 which was related to servicemix-depends-plugin. I'll take a
>> closer look at it.
>>
>> Thanks,
>>  Bartek
>>
>> 2010/8/18 Alexandros Karypidis <[email protected]>:
>> > Actually, it makes sense now. I'm looking at the "Java Build Path" of the
>> > project (as generated by "mvn eclipse:eclipse") and there is nothing that
>> > would result in the folder "target/test-classes" being in the launch
>> > configuration's classpath (it is not exported). I edited the launch
>> > configuration that was created for the JUnit test, adding the
>> > "target/test-classes" folder and the problem was resolved. Thanks for
>> > helping out.
>> >
>> > On 18/8/2010 20:45, Alexandros Karypidis wrote:
>> >>
>> >> Actually, I just found it at:
>> >>
>> >> C:\aries\trunk\blueprint\blueprint-itests>dir
>> >> target\test-classes\META-INF\maven
>> >>  Volume in drive C has no label.
>> >>  Volume Serial Number is DEDC-167F
>> >>
>> >>  Directory of
>> >>
>> C:\aries\trunk\blueprint\blueprint-itests\target\test-classes\META-INF\maven
>> >>
>> >> 18/08/2010  20:31 <DIR>          .
>> >> 18/08/2010  20:31 <DIR>          ..
>> >> 18/08/2010  20:31             6.882 dependencies.properties
>> >>               1 File(s)          6.882 bytes
>> >>
>> >> I still can't run the test from within Eclipse though:
>> >>
>> >> java.lang.reflect.InvocationTargetException
>> >>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> >>    at
>> >>
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> >>    at
>> >>
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> >>    at java.lang.reflect.Method.invoke(Method.java:597)
>> >>    at
>> >>
>> org.ops4j.pax.exam.junit.internal.DefaultConfigMethod.getOptions(DefaultConfigMethod.java:133)
>> >>    at
>> >>
>> org.ops4j.pax.exam.junit.JUnit4TestRunner.getOptions(JUnit4TestRunner.java:347)
>> >>    at
>> >>
>> org.ops4j.pax.exam.junit.JUnit4TestRunner.getTestMethods(JUnit4TestRunner.java:97)
>> >>    at
>> >>
>> org.ops4j.pax.exam.junit.JUnit4TestRunner.<init>(JUnit4TestRunner.java:80)
>> >>    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>> >> Method)
>> >>    at
>> >>
>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>> >>    at
>> >>
>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>> >>    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>> >>    at
>> >>
>> org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:31)
>> >>    at
>> >>
>> org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:24)
>> >>    at
>> >>
>> org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
>> >>    at
>> >>
>> org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29)
>> >>    at
>> >>
>> org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
>> >>    at
>> >> org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24)
>> >>    at
>> >>
>> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.<init>(JUnit4TestReference.java:29)
>> >>    at
>> >>
>> org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.<init>(JUnit4TestClassReference.java:25)
>> >>    at
>> >>
>> org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:40)
>> >>    at
>> >>
>> org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:30)
>> >>    at
>> >>
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
>> >>    at
>> >>
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
>> >>    at
>> >>
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
>> >>    at
>> >>
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
>> >> Caused by: java.lang.RuntimeException: Could not resolve version. Did
>> you
>> >> configured the plugin in your maven project?Or maybe you did not run the
>> >> maven build and you are using an IDE?
>> >>    at
>> org.ops4j.pax.exam.MavenUtils.getArtifactVersion(MavenUtils.java:79)
>> >>    at org.ops4j.pax.exam.MavenUtils$1.getVersion(MavenUtils.java:102)
>> >>    at
>> >>
>> org.ops4j.pax.exam.options.MavenArtifactUrlReference.version(MavenArtifactUrlReference.java:110)
>> >>    at
>> >>
>> org.ops4j.pax.exam.options.MavenArtifactUrlReference.versionAsInProject(MavenArtifactUrlReference.java:118)
>> >>    at
>> >>
>> org.ops4j.pax.exam.options.MavenArtifactUrlReference.versionAsInProject(MavenArtifactUrlReference.java:29)
>> >>    at
>> >>
>> org.ops4j.pax.exam.options.MavenArtifactProvisionOption.versionAsInProject(MavenArtifactProvisionOption.java:121)
>> >>    at
>> >>
>> org.apache.aries.blueprint.itests.AbstractIntegrationTest.mavenBundle(AbstractIntegrationTest.java:152)
>> >>    at
>> >>
>> org.apache.aries.blueprint.itests.BlueprintContainer2BTCustomizerTest.configuration(BlueprintContainer2BTCustomizerTest.java:116)
>> >>    ... 26 more
>> >>
>> >>
>> >>
>> >> On 18/8/2010 20:41, Alexandros Karypidis wrote:
>> >>>
>> >>> Thanks for taking the time to explain this. However, I am getting the
>> >>> error even though I have successfully completed an "mvn install" (which
>> >>> surely should have generated that file). For example, I just ran an
>> "mvn
>> >>> test" in blueprint-itests:
>> >>>
>> >>> C:\aries\trunk\blueprint\blueprint-itests>mvn test
>> >>> [INFO] Scanning for projects...
>> >>> [INFO]
>> >>>
>> ------------------------------------------------------------------------
>> >>> [INFO] Building Apache Aries Blueprint iTests
>> >>> [INFO]    task-segment: [test]
>> >>> [INFO]
>> >>>
>> ------------------------------------------------------------------------
>> >>> [INFO] [enforcer:enforce {execution: default}]
>> >>> [INFO] [antrun:run {execution: create-prop}]
>> >>> [INFO] Executing tasks
>> >>>     [echo] Maven version: 0.3-incubating-SNAPSHOT
>> >>>     [echo] OSGi version: 0.3.0.incubating-SNAPSHOT
>> >>> [INFO] Executed tasks
>> >>> [INFO] [properties:read-project-properties {execution: default}]
>> >>> [INFO] Setting property: classpath.resource.loader.class =>
>> >>> 'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'.
>> >>> [INFO] Setting property: velocimacro.messages.on => 'false'.
>> >>> [INFO] Setting property: resource.loader => 'classpath'.
>> >>> [INFO] Setting property: resource.manager.logwhenfound => 'false'.
>> >>> [INFO] [remote-resources:process {execution: default}]
>> >>> [INFO] [paxexam:generate-depends-file {execution: generate-config}]
>> >>> [INFO] Created:
>> >>>
>> C:\aries\trunk\blueprint\blueprint-itests\target\test-classes\META-INF\maven\dependencies.properties
>> >>> [INFO] [resources:resources {execution: default-resources}]
>> >>> [INFO] Using 'UTF-8' encoding to copy filtered resources.
>> >>> [INFO] skip non existing resourceDirectory
>> >>> C:\aries\trunk\blueprint\blueprint-itests\src\main\resources
>> >>> [INFO] skip non existing resourceDirectory
>> >>> C:\aries\trunk\blueprint\blueprint-itests\src\main\filtered-resources
>> >>> [INFO] Copying 4 resources
>> >>> [INFO] [compiler:compile {execution: default-compile}]
>> >>> [INFO] No sources to compile
>> >>> [INFO] [resources:testResources {execution: default-testResources}]
>> >>> [INFO] Using 'UTF-8' encoding to copy filtered resources.
>> >>> [INFO] Copying 1 resource
>> >>> [INFO] skip non existing resourceDirectory
>> >>> C:\aries\trunk\blueprint\blueprint-itests\src\test\filtered-resources
>> >>> [INFO] Copying 4 resources
>> >>> [INFO] [compiler:testCompile {execution: default-testCompile}]
>> >>> [INFO] Nothing to compile - all classes are up to date
>> >>> [INFO] [surefire:test {execution: default-test}]
>> >>> [INFO] Surefire report directory:
>> >>> C:\aries\trunk\blueprint\blueprint-itests\target\surefire-reports
>> >>>
>> >>> -------------------------------------------------------
>> >>>  T E S T S
>> >>> -------------------------------------------------------
>> >>> Running org.apache.aries.blueprint.itests.TestRegistrationListener
>> >>> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.258
>> sec
>> >>> Running org.apache.aries.blueprint.itests.MultiBundleWithAsmTest
>> >>> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.556
>> sec
>> >>> Running org.apache.aries.blueprint.itests.BlueprintContainerTest
>> >>> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.834
>> sec
>> >>> Running org.apache.aries.blueprint.itests.TestConfigAdmin
>> >>> Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 17.511
>> >>> sec
>> >>> Running
>> >>> org.apache.aries.blueprint.itests.BlueprintContainerBTCustomizerTest
>> >>> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 4.502
>> sec
>> >>> Running org.apache.aries.blueprint.itests.BlueprintContainer2Test
>> >>> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 8.122
>> sec
>> >>> Running
>> >>> org.apache.aries.blueprint.itests.BlueprintContainer2BTCustomizerTest
>> >>> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 6.934
>> sec
>> >>> Running org.apache.aries.blueprint.itests.MultiBundleWithCgLibTest
>> >>> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.47
>> sec
>> >>> Running org.apache.aries.blueprint.itests.TestReferences
>> >>> Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 5.333
>> sec
>> >>>
>> >>> Results :
>> >>>
>> >>> Tests run: 13, Failures: 0, Errors: 0, Skipped: 0
>> >>>
>> >>> [INFO]
>> >>>
>> ------------------------------------------------------------------------
>> >>> [INFO] BUILD SUCCESSFUL
>> >>> [INFO]
>> >>>
>> ------------------------------------------------------------------------
>> >>> [INFO] Total time: 1 minute 9 seconds
>> >>> [INFO] Finished at: Wed Aug 18 20:32:59 EEST 2010
>> >>> [INFO] Final Memory: 28M/67M
>> >>> [INFO]
>> >>>
>> ------------------------------------------------------------------------
>> >>>
>> >>> Immediately afterwards (and without even launching Eclipse), I checked
>> >>> for the file, but it was not generated:
>> >>>
>> >>> C:\aries\trunk\blueprint\blueprint-itests>dir target\classes\META-INF
>> >>>  Volume in drive C has no label.
>> >>>  Volume Serial Number is DEDC-167F
>> >>>
>> >>>  Directory of
>> >>> C:\aries\trunk\blueprint\blueprint-itests\target\classes\META-INF
>> >>>
>> >>> 18/08/2010  20:32 <DIR>          .
>> >>> 18/08/2010  20:32 <DIR>          ..
>> >>> 18/08/2010  20:31               572 DEPENDENCIES
>> >>> 18/08/2010  20:31               562 DISCLAIMER
>> >>> 18/08/2010  20:31            11.358 LICENSE
>> >>> 18/08/2010  20:31               186 NOTICE
>> >>>               4 File(s)         12.678 bytes
>> >>>
>> >>> On 18/8/2010 19:42, Bartosz Kowalewski wrote:
>> >>>>
>> >>>> Hi,
>> >>>>
>> >>>> As Lin said, Pax Exam tests are just ordinary JUnit tests and can be
>> >>>> run from Eclipse w/o any additional tweaking. Unfortunately, there's
>> >>>> one little catch that is introduced by Pax Exam configuration used in
>> >>>> Aries itests projects. That is why you're observing this weird error.
>> >>>>
>> >>>> These tests need to download Maven artifacts. Versions of these
>> >>>> artifacts are not specified inside the Pax Exam tests. It is so,
>> >>>> because it's cleaner to keep those versions in a single location - in
>> >>>> pom.xml (and not in both pom.xml and JUnit test). The issue is that
>> >>>> Pax Exam tests do not have access to pom.xml. That is why, during a
>> >>>> build of an itests project, a properties file with all details on
>> >>>> artifacts that are dependencies of the itests project is being
>> >>>> generated. This is done using ServiceMix's Mojo - depends-maven-plugin
>> >>>> - or a similar Mojo from OPS4J Pax (I don't remember its name). The
>> >>>> file is being added to target\classes\META-INF\maven\ and is named
>> >>>> dependencies.properties.
>> >>>>
>> >>>> Conclusion: You need to run a Maven build to have this file generated.
>> >>>> If it's present, you'll be able to run tests from Eclipse until this
>> >>>> file is deleted (when running 'mvn clean' or by Eclipse itself). Oh,
>> >>>> one more thing - this plugin should attached to the
>> >>>> 'generate-resources' phase of a Maven lifecycle, so it should be
>> >>>> enough to just run this Maven phase and then invoke tests from
>> >>>> Eclipse.
>> >>>>
>> >>>> Thanks,
>> >>>>   Bartek
>> >>>>
>> >>>> 2010/8/18 Lin Sun<[email protected]>:
>> >>>>>
>> >>>>> Hi,
>> >>>>>
>> >>>>> Are you trying to run the itests from Eclipse or just the junit tests
>> >>>>> from Eclipse?
>> >>>>>
>> >>>>> I personally have never run the itests from Eclipse, but running
>> junit
>> >>>>> tests from Eclipse should be doable.
>> >>>>>
>> >>>>> Lin
>> >>>>>
>> >>>>> On Wed, Aug 18, 2010 at 11:38 AM, Alexandros Karypidis
>> >>>>> <[email protected]>  wrote:
>> >>>>>>
>> >>>>>> Hi,
>> >>>>>>
>> >>>>>> I'm trying to run the integration tests from within Eclipse. I've
>> >>>>>> never used
>> >>>>>> pax-exam before. As far as I can understand I need to configure
>> >>>>>> pax-exam to
>> >>>>>> create an OSGi container in order to deply the test bundle. What
>> kind
>> >>>>>> of
>> >>>>>> launch configuration should I use in Eclispe to have the test run
>> >>>>>> within an
>> >>>>>> Equinox instance? My workspace has all Aries modules in it, imported
>> >>>>>> from an
>> >>>>>> "mvn eclipse:eclipse" after a successful build.
>> >>>>>>
>> >>>>>> Thanks,
>> >>>>>> Alexander
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >
>> >
>>
>

Reply via email to