Skip to main content

[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


Back to the top