Re: WOUnit testing with partial entities
Re: WOUnit testing with partial entities
- Subject: Re: WOUnit testing with partial entities
- From: Fabian Peters <email@hidden>
- Date: Thu, 22 Aug 2013 18:32:29 +0200
Hi Henrique,
I get the same exception, but only once in a while (one in ten builds or so) and only when jenkins is running the tests via maven. When running the tests from eclipse, everything's fine. There does seem to be some sort of timing or concurrency problem.
Fabian
Am 22.08.2013 um 02:31 schrieb Henrique Prange:
> 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
_______________________________________________
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