Test med JUnit

11796400_sJUnit er et genialt Testing framework der understøtter TDD (Test Driven Design). Jeg har desværre ikke kunnet få det til at virke i Domino Designer. Når jeg opretter en ny ‘JUnit Test Case’ fra Package Explorer menuen og efterfølgende kører den med ‘Run As, JUnit Test‘ så får jeg en ‘Class not found ..’ fejl. Æv – det havde ellers være nemt …

I stedet for, så kører jeg nu mine JUnit test fra en XPage – og det virker perfekt:

  • Først kopierer jeg to jar filer ind i ‘Jar’ folderen i min database: junit.jar og hamcrest-core.jar
  • Hvis du få security problemer, så skal der rettes i java.policy filen (typisk: C:\domino\jvm\lib\security\java.policy). Tilføj denne linje:
    grant { permission java.security.AllPermission; };

    Det får du sikkert ikke lov til i produktion – men du tester alligevel kun lokalt eller på en Devleopment server.

  • Til at kører mine test klasser, har jeg lavet min egen ‘Runner’ – dvs. en klasse der kan starte JUnit runneren fra en XPage og efterfølgende præsentere resultatet i html. Koden kan downloades her.
  • Det hele kaldes fra et computet field på en XPages
<xp:text escape="false" id="computedField1">
		<xp:this.value><![CDATA[${javascript:
runner = new dk.xpages.utils.JUnitRunner();
//Run test or TestSuite
runner.runTest( "test.dk.xpages.TestSuite" );
runner.getHtml();
}]]></xp:this.value>
</xp:text>

Links

2 tanker om "Test med JUnit"

  1. Så er der fundet en løsning der gør det muligt at lave rigtig unit testning i Domino -> http://mzhuk.blogspot.dk/2014/02/unit-tests-for-lotus-domino-applications.html

    Det gøres ved at køre JUnit direkte på On-Disc-Projektet – først skal .project file dog redigeres og nedenstående tilføjes:

    <buildCommand>
        <name>org.eclipse.jdt.core.javabuilder</name>
        <arguments>
        </arguments>
      </buildCommand>
    </buildSpec>
    <natures>
      <nature>org.eclipse.jdt.core.javanature</nature>
    </natures>
    

    Test cases kan oprettes via New->Other->Java->JUnit->JUnit Test Case.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

*