On 07/08/2010, at 12:02 PM, Paul Hoadley wrote:

> On 07/08/2010, at 1:18 AM, Chuck Hill wrote:
> 
>> Yes?  Are you using the WO-fu of wopath?
> 
> I am now!  Thanks Chuck.

Now I'm testing a framework that contains some EOs.  Again, this is using Ant + 
JUnit, and outside of Eclipse.  Inside Eclipse, I don't seem to have to do much 
at all in the way of setting things up to get the model loaded.  In fact, it 
seems to happen somewhat magically, and I just provide a dummy connection 
dictionary for the model in a @BeforeClass method, and point it at an (empty) 
in-memory H2 database.

From the command line (and in Hudson) I get this:

    [junit] Attempt to insert null into an 
com.webobjects.foundation.NSMutableArray.
    [junit] java.lang.IllegalArgumentException: Attempt to insert null into an 
com.webobjects.foundation.NSMutableArray.
    [junit]     at 
com.webobjects.foundation.NSMutableArray.addObject(NSMutableArray.java:165)
    [junit]     at 
com.webobjects.eoaccess.EOModelGroup.modelGroupForLoadedBundles(EOModelGroup.java:700)
    [junit]     at 
com.webobjects.eoaccess.EOModelGroup.globalModelGroup(EOModelGroup.java:306)
    [junit]     at 
com.webobjects.eoaccess.EOModelGroup.defaultGroup(EOModelGroup.java:333)
    [junit]     at 
net.logicsquad.webobjects.core.LSEOModelUtils.setUpDatabaseConnectionForModel(Unknown
 Source)
    [junit]     at net.logicsquad.pbf.tests.model.ModelTest.setUp(Unknown 
Source)
    [junit]     at 
net.logicsquad.pbf.tests.model.bookings.BookingsModelTest.setUp(Unknown Source)

Some Googling lead me to believe that this is a symptom of the main bundle not 
being loaded, and, indeed, NSBundle.mainBundle() returns null.  Is it obvious 
what I'm doing wrong here?  I'm using the same Ant targets (appended below) as 
I am for a different framework projects (i.e., neither of them are 
applications), the only difference here is that I am trying to load an EOModel.

---
        <!-- JUnit testing -->
        <property name="src.tests" value="Tests" />
        <property name="bin.tests" value="bin-tests" />
        <property name="junit.results" value="junit-results" />
        <property name="junit.report" value="junit-report" />

        <target name="clean.tests">
                <delete dir="${bin.tests}" />
                <delete dir="${junit.results}" />
                <delete dir="${junit.report}" />
        </target>
        
        <typedef name="wopath" classname="org.objectstyle.woproject.ant.WOPath" 
/>
        <wopath id="testing.classpath">
                <frameworks root="User" eclipse="true" />
                <frameworks root="Local" eclipse="true" />
                <frameworks root="System" eclipse="true" />
        </wopath>

        <target name="compile.tests">
                <mkdir dir="${bin.tests}" />
                <javac srcdir="${src.tests}" destdir="${bin.tests}">
                        <classpath refid="testing.classpath" />
                        <classpath>
                                <pathelement location="bin" />
                        </classpath>
                </javac>
        </target>
        
        <target name="junit" depends="compile.tests">
                <mkdir dir="junit-results" />
                <junit haltonfailure="false"
                           printsummary="true"
                           failureproperty="test.failed">
                        <classpath refid="testing.classpath" />
                        <classpath>
                                <pathelement location="bin" />
                                <pathelement location="${junit.jar}" />
                                <pathelement location="${bin.tests}" />
                        </classpath>                    
                        <formatter type="brief" usefile="false" />
                        <formatter type="xml" />
                        <batchtest todir="${junit.results}">
                                <fileset dir="${bin.tests}" 
includes="**/ClinicalDetailsTest.class" />
                        </batchtest>
                </junit>
                <mkdir dir="${junit.report}" />
                <junitreport todir="${junit.report}">
                        <fileset dir="${junit.results}">
                                <include name="TEST-*.xml"/>
                        </fileset>
                        <report format="frames" todir="${junit.report}"/>
                </junitreport>
                <fail if="test.failed"/>
        </target>
---


-- 
Paul.

http://logicsquad.net/


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to