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