Re: WOUnit testing with partial entities
Re: WOUnit testing with partial entities
- Subject: Re: WOUnit testing with partial entities
- From: Henrique Prange <email@hidden>
- Date: Wed, 21 Aug 2013 21:31:01 -0300
Hi Paul,
That is exactly the problem some WOUnit's users are reporting. The only way I was able to reproduce this kind of issue in my own environment was by turning the unit tests execution parallel. Anyway, this causes me problems even with WOUnit 1.2. :(
So, I added a lot of logs and compared the execution of tests on WOUnit 1.2 and the latest version of WOUnit. Clearly, the current version is reusing the same model group between test executions. I've changed the way things are initialized and the logs look almost identical now. There's a new snapshot here [1] with the mentioned changes. Would you mind to try it?
[1]https://dl.dropboxusercontent.com/u/9599580/wounit-1.3-SNAPSHOT-3.jar
Cheers,
Henrique
On 17/08/2013, at 08:29, Paul Hoadley <email@hidden> wrote:
> Hi Henrique,
>
> On 02/08/2013, at 9:08 AM, Henrique Prange <email@hidden> wrote:
>
>> Good to hear.
>>
>> I'm trying to solve another problem that seems related to the EOF initialization. I'm going to release a new version of WOUnit during the weekend (solving the other problem or not).
>
> Just out of interest, what was the other problem you were having with EOF initialisation? I've updated to that 1.3-SNAPSHOT build across a range of projects, and while it fixes the issue with partial entities, _some_ tests that were passing under 1.2 are now failing, and it seems to be during EO initialisation, for example setting up @Dummy EOs. Worse, everything is fine in development, the tests are only failing once they hit the Jenkins build server, which makes it awful to debug.
>
> Here's an example stack trace at the point of failure, for what it's worth. I'm a bit stumped. Can you see anything meaningful?
>
> [junit] Testcase: testToString(net.logicsquad.lssurvey.model.SurveyInstanceTest): Caused an ERROR
> [junit] java.lang.reflect.InvocationTargetException
> [junit] com.webobjects.foundation.NSForwardException [java.lang.reflect.InvocationTargetException] null:java.lang.reflect.InvocationTargetException
> [junit] at com.webobjects.foundation._NSUtilities._explainInstantiationException(_NSUtilities.java:626)
> [junit] at com.webobjects.foundation._NSUtilities.instantiateObjectWithConstructor(_NSUtilities.java:665)
> [junit] at com.webobjects.eoaccess.EOEntityClassDescription.createInstanceWithEditingContext(EOEntityClassDescription.java:242)
> [junit] at com.wounit.rules.MockEditingContext.createSavedObject(MockEditingContext.java:216)
> [junit] at com.wounit.rules.MockEditingContext.createSavedObject(MockEditingContext.java:177)
> [junit] at com.wounit.rules.MockEditingContext$DummyFacade.create(MockEditingContext.java:83)
> [junit] at com.wounit.rules.AnnotationProcessor.createEOForType(AnnotationProcessor.java:49)
> [junit] at com.wounit.rules.AnnotationProcessor.initializeObject(AnnotationProcessor.java:172)
> [junit] at com.wounit.rules.AnnotationProcessor.process(AnnotationProcessor.java:205)
> [junit] at com.wounit.rules.MockEditingContext.before(MockEditingContext.java:149)
> [junit] at com.wounit.rules.AbstractEditingContextRule$1.evaluate(AbstractEditingContextRule.java:160)
> [junit] Caused by: java.lang.reflect.InvocationTargetException
> [junit] at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
> [junit] at com.webobjects.foundation._NSUtilities.instantiateObjectWithConstructor(_NSUtilities.java:659)
> [junit] Caused by: java.lang.NullPointerException
> [junit] at com.webobjects.eoaccess.EOModel.createPrototypeCache(EOModel.java:631)
> [junit] at com.webobjects.eoaccess.EOModel.prototypeAttributeNamed(EOModel.java:699)
> [junit] at com.webobjects.eoaccess.ERXModel.prototypeAttributeNamed(ERXModel.java:315)
> [junit] at com.webobjects.eoaccess.EOAttribute.<init>(EOAttribute.java:998)
> [junit] at com.webobjects.eoaccess.EOEntity.attributes(EOEntity.java:816)
> [junit] at com.webobjects.eoaccess.EOEntity.attributeNamed(EOEntity.java:789)
> [junit] at com.webobjects.eoaccess.EOEntity.classProperties(EOEntity.java:1098)
> [junit] at com.webobjects.eoaccess.EOEntity._propertyDictionaryInitializer(EOEntity.java:3321)
> [junit] at com.webobjects.eoaccess.EOEntity._newDictionaryForProperties(EOEntity.java:3667)
> [junit] at com.webobjects.eoaccess.EOEntityClassDescription._newDictionaryForProperties(EOEntityClassDescription.java:88)
> [junit] at com.webobjects.eocontrol.EOGenericRecord.__setClassDescription(EOGenericRecord.java:111)
> [junit] at com.webobjects.eocontrol.EOGenericRecord.__setClassDescription(EOGenericRecord.java:100)
> [junit] at com.webobjects.eocontrol.EOGenericRecord.<init>(EOGenericRecord.java:73)
> [junit] at er.extensions.eof.ERXGenericRecord.<init>(ERXGenericRecord.java:102)
> [junit] at net.logicsquad.webobjects.core.eof.LSGenericRecord.<init>(LSGenericRecord.java:54)
> [junit] at net.logicsquad.lssurvey.model.survey._Survey.<init>(_Survey.java:15)
> [junit] at net.logicsquad.lssurvey.model.survey.Survey.<init>(Survey.java:491)
> [junit]
> [junit]
> [junit] Test net.logicsquad.lssurvey.model.SurveyInstanceTest FAILED
>
>
> --
> Paul Hoadley
> http://logicsquad.net/
>
>
>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden