You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@aries.apache.org by Alexandros Karypidis <ak...@yahoo.gr> on 2010/08/18 17:38:26 UTC
Running JUnit tests from within Eclipse
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
Re: Running JUnit tests from within Eclipse
Posted by Alexandros Karypidis <ak...@yahoo.gr>.
Hi Lin,
I'mm talking about the itests (I assume this is short for "integration
test"). As far as I understand, these need to run within an OSGi
runtime. However, this runtime is created by the "pax-exam" tool which
has a JUnit runner. As far as I can see, these tests are supposed to run
as simple JUnit tests, since they are annotated with:
@RunWith(JUnit4TestRunner.class)
I have also noticed that they contained a static configuration method
that should tell this "pax-exam" tool what type of container to
instantiate and which bundles to install in it:
For example, BlueprintContainer2Test has:
@org.ops4j.pax.exam.junit.Configuration
public static Option[] configuration() {
Option[] options = options(
...
);
options = updateOptions(options);
return options;
}
However, when I run the test, I get an exception from PAX that says:
"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?"
Googling for this only turned the following up:
http://mail-archives.apache.org/mod_mbox/felix-users/201005.mbox/%3CAANLkTikukinJZDiu5TRO32_it3324wBEdJMPWpfCUUAn@mail.gmail.com%3E
This leads me to believe that there is something that I must configure
in Eclipse in order for things to work. Something that maven does before
launching the tests. Any idea what it could be?
On 18/8/2010 18:54, Lin Sun wrote:
> 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
> <ak...@yahoo.gr> 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
>>
>>
>>
>>
Re: Running JUnit tests from within Eclipse
Posted by Alexandros Karypidis <ak...@yahoo.gr>.
Before you spend more time on this, I will start from scratch (mvn
eclipse:clean, mvn clean, ...) to verify this. I'll also use a new
Eclipse workspace. I'm afraid I may have done something while trying
things to get the test to run. I'll post back to let you know.
On 18/8/2010 21:12, Bartosz Kowalewski 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<ak...@yahoo.gr>:
>
>> 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<li...@gmail.com>:
>>>>>
>>>>>> 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
>>>>>> <ak...@yahoo.gr> 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
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>
>>
Re: Running JUnit tests from within Eclipse
Posted by Alexandros Karypidis <ak...@yahoo.gr>.
Ok, now that I've been closely watching target/target-classes
throughout a fresh build, I understand what happened. Eclipse decides to
clean the build at various points in time. Whenever it does that, one
needs to run "mvn test" to have the file re-generated.
In my case, after importing the projects from a fresh command-line
build, I expected the file to exist (and indeed it was there). However,
as soon as I imported the projects into Eclipse, I'd edit the
".classpath" of org.apache.aries.blueprint.core to fix the build error
caused by the existence of:
<classpathentry kind="src"
path="C:/aries/trunk/blueprint/blueprint-api/src/main/resources/org/osgi/service/blueprint"
including="blueprint.xsd" excluding="**/*.java"/>
This led to Eclipse re-building the "itest" project which made the
generated file dissappear. An "mvn test" would fix that.
On 18/8/2010 21:58, Bartosz Kowalewski wrote:
> 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<mn...@apache.org>:
>> 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<ko...@gmail.com>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<ak...@yahoo.gr>:
>>>> 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<li...@gmail.com>:
>>>>>>>> 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
>>>>>>>> <ak...@yahoo.gr> 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
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>
Re: Running JUnit tests from within Eclipse
Posted by Bartosz Kowalewski <ko...@gmail.com>.
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 <mn...@apache.org>:
> 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 <ko...@gmail.com>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 <ak...@yahoo.gr>:
>> > 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<li...@gmail.com>:
>> >>>>>
>> >>>>> 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
>> >>>>> <ak...@yahoo.gr> 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
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >
>> >
>>
>
Re: Running JUnit tests from within Eclipse
Posted by Mark Nuttall <mn...@apache.org>.
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 <ko...@gmail.com>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 <ak...@yahoo.gr>:
> > 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<li...@gmail.com>:
> >>>>>
> >>>>> 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
> >>>>> <ak...@yahoo.gr> 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
> >>>>>>
> >>>>>>
> >>>>>>
> >
> >
>
Re: Running JUnit tests from within Eclipse
Posted by Bartosz Kowalewski <ko...@gmail.com>.
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 <ak...@yahoo.gr>:
> 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<li...@gmail.com>:
>>>>>
>>>>> 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
>>>>> <ak...@yahoo.gr> 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
>>>>>>
>>>>>>
>>>>>>
>
>
Re: Running JUnit tests from within Eclipse
Posted by Alexandros Karypidis <ak...@yahoo.gr>.
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<li...@gmail.com>:
>>>> 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
>>>> <ak...@yahoo.gr> 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
>>>>>
>>>>>
>>>>>
Re: Running JUnit tests from within Eclipse
Posted by Alexandros Karypidis <ak...@yahoo.gr>.
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<li...@gmail.com>:
>>> 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
>>> <ak...@yahoo.gr> 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
>>>>
>>>>
>>>>
Re: Running JUnit tests from within Eclipse
Posted by Alexandros Karypidis <ak...@yahoo.gr>.
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<li...@gmail.com>:
>
>> 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
>> <ak...@yahoo.gr> 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
>>>
>>>
>>>
>>>
>>
Re: Running JUnit tests from within Eclipse
Posted by Bartosz Kowalewski <ko...@gmail.com>.
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 <li...@gmail.com>:
> 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
> <ak...@yahoo.gr> 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
>>
>>
>>
>
Re: Running JUnit tests from within Eclipse
Posted by Alasdair Nottingham <no...@apache.org>.
Last time I ran them I went run as junit.
Alasdair
On 18 Aug 2010, at 16:54, Lin Sun <li...@gmail.com> wrote:
> 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
> <ak...@yahoo.gr> 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
>>
>>
>>
Re: Running JUnit tests from within Eclipse
Posted by Lin Sun <li...@gmail.com>.
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
<ak...@yahoo.gr> 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
>
>
>