[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [eclipselink-users] How to run EclipseLink unittests inside Eclipse?
|
How do you have your classpath configured for your other tests?
The eclipselink-annotation-model.jar contains a jar file that references two
additional jar files (eclipselink-xml-merge-model.jar and
eclipselink-xml-only-model.jar). They will need to be on the classpath.
-Tom
Patric Rufflar wrote:
Thank you, Tom!
The FullRegressionTestSuite is now working.
But when trying to execute some other tests (e.g. AdvancedJPAJunitTest),
I am getting the following exception:
java.lang.RuntimeException: An exception occurred trying clear the cache.
at
org.eclipse.persistence.testing.framework.junit.JUnitTestCase.clearCache(JUnitTestCase.java:245)
at
org.eclipse.persistence.testing.tests.jpa.advanced.AdvancedJPAJunitTest.setUp(AdvancedJPAJunitTest.java:139)
at junit.framework.TestCase.runBare(TestCase.java:132)
at
org.eclipse.persistence.testing.framework.junit.JUnitTestCase.runBare(JUnitTestCase.java:503)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
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: Exception [EclipseLink-30005] (Eclipse Persistence Services -
2.3.0.qualifier):
org.eclipse.persistence.exceptions.PersistenceUnitLoadingException
Exception Description: An exception was thrown while searching for
persistence archives with ClassLoader:
sun.misc.Launcher$AppClassLoader@11b86e7
Internal Exception: javax.persistence.PersistenceException: Exception
[EclipseLink-28018] (Eclipse Persistence Services - 2.3.0.qualifier):
org.eclipse.persistence.exceptions.EntityManagerSetupException
Exception Description: Predeployment of PersistenceUnit [default] failed.
Internal Exception: Exception [EclipseLink-7151] (Eclipse Persistence
Services - 2.3.0.qualifier):
org.eclipse.persistence.exceptions.ValidationException
Exception Description: The type [class java.lang.String] for the
attribute [name] on the entity class [class
org.eclipse.persistence.testing.models.jpa.xml.merge.relationships.Customer]
is not a valid type for an enumerated mapping. The attribute must be
defined as a Java enum.
at
org.eclipse.persistence.exceptions.PersistenceUnitLoadingException.exceptionSearchingForPersistenceResources(PersistenceUnitLoadingException.java:126)
at
org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactory(PersistenceProvider.java:105)
at javax.persistence.Persistence.createEntityManagerFactory(Unknown
Source)
at
org.eclipse.persistence.testing.framework.junit.JUnitTestCase.getEntityManagerFactory(JUnitTestCase.java:430)
at
org.eclipse.persistence.testing.framework.junit.JUnitTestCase.getEntityManagerFactory(JUnitTestCase.java:406)
at
org.eclipse.persistence.testing.framework.junit.JUnitTestCase.getServerSession(JUnitTestCase.java:397)
at
org.eclipse.persistence.testing.framework.junit.JUnitTestCase.clearCache(JUnitTestCase.java:243)
... 16 more
Caused by: javax.persistence.PersistenceException: Exception
[EclipseLink-28018] (Eclipse Persistence Services - 2.3.0.qualifier):
org.eclipse.persistence.exceptions.EntityManagerSetupException
Exception Description: Predeployment of PersistenceUnit [default] failed.
Internal Exception: Exception [EclipseLink-7151] (Eclipse Persistence
Services - 2.3.0.qualifier):
org.eclipse.persistence.exceptions.ValidationException
Exception Description: The type [class java.lang.String] for the
attribute [name] on the entity class [class
org.eclipse.persistence.testing.models.jpa.xml.merge.relationships.Customer]
is not a valid type for an enumerated mapping. The attribute must be
defined as a Java enum.
at
org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:1166)
at
org.eclipse.persistence.internal.jpa.deployment.JPAInitializer.callPredeploy(JPAInitializer.java:101)
at
org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactory(PersistenceProvider.java:96)
... 21 more
Caused by: Exception [EclipseLink-28018] (Eclipse Persistence Services -
2.3.0.qualifier):
org.eclipse.persistence.exceptions.EntityManagerSetupException
Exception Description: Predeployment of PersistenceUnit [default] failed.
Internal Exception: Exception [EclipseLink-7151] (Eclipse Persistence
Services - 2.3.0.qualifier):
org.eclipse.persistence.exceptions.ValidationException
Exception Description: The type [class java.lang.String] for the
attribute [name] on the entity class [class
org.eclipse.persistence.testing.models.jpa.xml.merge.relationships.Customer]
is not a valid type for an enumerated mapping. The attribute must be
defined as a Java enum.
at
org.eclipse.persistence.exceptions.EntityManagerSetupException.predeployFailed(EntityManagerSetupException.java:219)
... 24 more
Caused by: Exception [EclipseLink-7151] (Eclipse Persistence Services -
2.3.0.qualifier): org.eclipse.persistence.exceptions.ValidationException
Exception Description: The type [class java.lang.String] for the
attribute [name] on the entity class [class
org.eclipse.persistence.testing.models.jpa.xml.merge.relationships.Customer]
is not a valid type for an enumerated mapping. The attribute must be
defined as a Java enum.
at
org.eclipse.persistence.exceptions.ValidationException.invalidTypeForEnumeratedAttribute(ValidationException.java:1076)
at
org.eclipse.persistence.internal.jpa.metadata.converters.EnumeratedMetadata.process(EnumeratedMetadata.java:111)
at
org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.MappingAccessor.processEnumerated(MappingAccessor.java:1439)
at
org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.BasicAccessor.processEnumerated(BasicAccessor.java:413)
at
org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.MappingAccessor.processJPAConverters(MappingAccessor.java:1467)
at
org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.MappingAccessor.processMappingConverter(MappingAccessor.java:1535)
at
org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.MappingAccessor.processMappingValueConverter(MappingAccessor.java:1553)
at
org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.BasicAccessor.process(BasicAccessor.java:372)
at
org.eclipse.persistence.internal.jpa.metadata.MetadataDescriptor.processMappingAccessors(MetadataDescriptor.java:1417)
at
org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAccessor.processMappingAccessors(ClassAccessor.java:1438)
at
org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EntityAccessor.processMappingAccessors(EntityAccessor.java:1066)
at
org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EntityAccessor.process(EntityAccessor.java:604)
at
org.eclipse.persistence.internal.jpa.metadata.MetadataProject.processStage2(MetadataProject.java:1541)
at
org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor.processORMMetadata(MetadataProcessor.java:485)
at
org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.processORMetadata(PersistenceUnitProcessor.java:454)
at
org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:1120)
... 23 more
Zitat von Tom Ware <tom.ware@xxxxxxxxxx>:
Hi Patric,
Hopefully I can help. I am going to assume you want to start with
the JPA tests. If that is not the case, let me know.
http://wiki.eclipse.org/EclipseLink/Development/Testing/JPA#Eclipse_JUnit
A couple of comments
1. The easiest way to ensure all the necessary components are built is
to run the ant build from the base directory. (You need an
eclipselink.jar and to have run the build in the eclipselink.jpa.test
directory and the full build will do both of these)
2. The build of eclipselink.jpa.test creates persistence unit jars for
the test. You will need to run that build each time you add or remove
classes from the model. Take a look at the jpa\eclipselink.jpa.test
directory after you have built and you will see all the persistence
units.
2. If you prefer not to edit the eclipselink.jpa.test/test.properties,
you can provide the database information in your user home directory
and call it test.properties. Any information in that file will
override anything defined in eclipselink.jpa.test/test.properties.
3. The eclipselink.jpa.test project contains a good launch target to
start with called FullRegressionTestSuite.launch.
Let me know what problems you are having,
Tom
Patric Rufflar wrote:
Hello,
I'd like to know how to setup eclipselink in Eclipse that I can ran
the provided test suites or add some new.
I read:
http://wiki.eclipse.org/EclipseLink/Building#Minimum_SVN_Trunk_projects_for_JPA_or_Core_Eclipse_Development_and_Testing
and
http://wiki.eclipse.org/EclipseLink/Development/Testing/Prereq
I setup an eclipse project using the eclipselink sources which
compiled successfully.
But when I try to ran some tests or testsuites I am getting:
javax.persistence.PersistenceException: No Persistence provider for
EntityManager named default
at
javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
at
org.eclipse.persistence.testing.framework.junit.JUnitTestCase.getEntityManagerFactory(JUnitTestCase.java:402)
at
org.eclipse.persistence.testing.framework.junit.JUnitTestCase.getEntityManagerFactory(JUnitTestCase.java:385)
at
org.eclipse.persistence.testing.framework.junit.JUnitTestCase.getEntityManagerFactory(JUnitTestCase.java:412)
at
org.eclipse.persistence.testing.framework.junit.JUnitTestCase.getServerSession(JUnitTestCase.java:373)
at
org.eclipse.persistence.testing.tests.jpa.orphanremoval.OrphanRemovalJUnitTestCase.testSetup(OrphanRemovalJUnitTestCase.java:1058)
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 junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at
org.eclipse.persistence.testing.framework.junit.JUnitTestCase.runBare(JUnitTestCase.java:466)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:243)
at junit.framework.TestSuite.run(TestSuite.java:238)
at
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:45)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
(or similar stack traces).
Which persistence.xml must be used? Is there some process which
creates or moves the correct persistence.xml?
Do I have to create some tables (or run a script) in order to run the
tests?
Thank you for your help and best regards,
Patric
_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users
_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users
_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users