Ich habe meine Testumgebung über java config konfiguriert. Bei meinem Test muss ich einige Daten im Voraus, um es auszuführen, aber wenn ich den Test mit dem @DatabaseSetup
Anmerkung betreibe ich immer den Fehler@DatabaseSetup kann den Datensatz nicht laden
Unable to load dataset from "personTestData.xml" using class com.github.springtestdbunit.dataset.FlatXmlDataSetLoader
Die Datei auf src/test/resources/personTestData.xml
befindet. Aus Neugierde habe ich die Datei in das gleiche Paket verschoben, in dem sich der Test selbst befindet, immer noch der gleiche Fehler.
Ich habe unzählige Stunden damit verbracht, das Internet nach dem Fehler zu durchsuchen, bisher keine Lösung.
UPDATE
Komponenten und Version, die ich verwenden:
junit: 4.12
hamcrest: 1.3
springtestdbunit: 1.2.1
dbunit: 2.5.0
bonecp: 0.8.0
hsqldb: 1.8.0.10
mein xml
<?xml version="1.0" encoding="UTF-8"?>
<dataset>
<person id="uuid'da578845-356c-4c99-9bda-c288c88e7b55"
dateCreated="2015-03-24 10:54:00"
isEnabled="1"
city="Graz"
displayName="42"
email="[email protected]"
firstname="Arthur"
lastname="Dent"
phone="01123456"
street="Waßkannergasse 16"
web="www.vdsoft.at"
zip="1010"/>
<person id="uuid'5aaae7dd-b84f-463e-a534-e7b2bc54752a"
dateCreated="2015-03-24 10:54:10"
isEnabled="1"
city="Graz"
displayName="Towel"
email="[email protected]"
firstname="Ford"
lastname="Prefect"
phone="01123856"
street="Waßkannergasse 45"
web="www.vdsoft.at"
zip="1010"/>
<person id="uuid'b770b982-3a59-4292-9fd8-715afa2c1bef"
dateCreated="2015-03-24 10:54:20"
isEnabled="1"
city="Graz"
displayName="Lemon"
email="[email protected]"
firstname="Zaphod"
lastname="Beeblebrox"
phone="01125456"
street="Waßkannergasse 20"
web="www.vdsoft.at"
zip="1010"/>
</dataset>
mein Testfall
@Test
@DatabaseSetup(type = DatabaseOperation.CLEAN_INSERT,
value = "personTestData.xml")
public void AddPersonAdditionsSuccessfull() {
PersonAdditionsDbo data = new PersonAdditionsDbo();
data.setCompany("VDsoft");
data.setCompetences("Developer");
data.setDistributor(true);
data.setFunction("Teamleader");
data.setHolisIsTopBecause("Payes rent...");
data.setIamHolisBecauseNote("Work");
data.setInvestment(10000f);
data.setInvitedById(this.zaphodBeeblebrox.getId());
data.setNotes("Something to say...");
data.setPerson(this.athurDent);
data.setReceiveNewsletter(true);
data.setReceivePressMessages(true);
data.setType("Developer");
assertNull(data.getId());
this.repo.save(data);
assertNotNull(data.getId());
}
stack trace, für die init der db geschnitet
WARN [main] (EntityManagerFactoryRegistry.java:80) - HHH000436: Entity manager factory name (TESTHolisEMF) is already registered. If entity manager will be clustered or passivated, specify a unique value for property 'hibernate.ejb.entitymanager_factory_name'
WARN [main] (TestContextManager.java:252) - Caught exception while allowing TestExecutionListener [[email protected]] to process 'before' execution of test method [public void holis.backend.webapi.repository.PersonAdditionTest.AddPersonAdditionsSuccessfull()] for test instance [[email protected]]
java.lang.IllegalArgumentException: Unable to load dataset from "personTestData.xml" using class com.github.springtestdbunit.dataset.FlatXmlDataSetLoader
at org.springframework.util.Assert.notNull(Assert.java:112)
at com.github.springtestdbunit.DbUnitRunner.loadDataset(DbUnitRunner.java:214)
at com.github.springtestdbunit.DbUnitRunner.loadDataSets(DbUnitRunner.java:203)
at com.github.springtestdbunit.DbUnitRunner.setupOrTeardown(DbUnitRunner.java:184)
at com.github.springtestdbunit.DbUnitRunner.beforeTestMethod(DbUnitRunner.java:66)
at com.github.springtestdbunit.DbUnitTestExecutionListener.beforeTestMethod(DbUnitTestExecutionListener.java:186)
at org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:249)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:72)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:82)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:73)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:217)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:83)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:68)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:163)
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:45)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175)
at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68)
Können Sie Ihre Frage mit dem vollständigen Stack-Trace und einer Testmethode, bei der Sie '@ DatabaseSetup' verwenden, aktualisieren? –