Ik heb met Eclipse een EJB 3.0 project gemaakt waarin ik DBUnit gebruik om de database te vullen met testdata.
Voor DBUnit gebruik ik een XML bestand om de data in te zetten.
Dit is mijn structuur:
Deze structuur heb ik nodig, aangezien ik straks de boel in Maven2 wil kieperen. Vandaar deze conventie.
Mijn probleem: Ik wil zowel vanuit Eclipse als Maven2 mijn JUnit tests draaien en daar begint het spek te stinken. Als ik namelijk vanuit Eclipse de JUnit test draai, wordt de DTD relatief aan de project root opgezocht, i.p.v. relatief aan het XML bestand.
Dit werkt niet:
Dit werkt wel:
De URL met of zonder ./ prefixen maakt geen verschil.
Waarom zit ik zo te zeuren? Nou, omdat ik straks ook de tests in Maven2 wil draaien en daar bestaat @runtime de directory "src/test/resources/" niet meer en staat schema.dtd WEL in de root en moet daar gezocht worden.
Voor DBUnit gebruik ik een XML bestand om de data in te zetten.
Dit is mijn structuur:
code:
1
2
3
4
5
6
7
8
9
10
| - project
- src
- test
- resources
- testData.xml
- schema.dtd
- java
- main
- resources
- java |
Deze structuur heb ik nodig, aangezien ik straks de boel in Maven2 wil kieperen. Vandaar deze conventie.
Mijn probleem: Ik wil zowel vanuit Eclipse als Maven2 mijn JUnit tests draaien en daar begint het spek te stinken. Als ik namelijk vanuit Eclipse de JUnit test draai, wordt de DTD relatief aan de project root opgezocht, i.p.v. relatief aan het XML bestand.
Dit werkt niet:
XML:
1
| <!DOCTYPE dataset SYSTEM "schema.dtd"> |
Dit werkt wel:
XML:
1
| <!DOCTYPE dataset SYSTEM "src/test/resources/schema.dtd"> |
De URL met of zonder ./ prefixen maakt geen verschil.
Waarom zit ik zo te zeuren? Nou, omdat ik straks ook de tests in Maven2 wil draaien en daar bestaat @runtime de directory "src/test/resources/" niet meer en staat schema.dtd WEL in de root en moet daar gezocht worden.
Fat Pizza's pizza, they are big and they are cheezy