Question

What can cause this error

   org.unitils.core.UnitilsException: Error inserting test data from DbUnit dataset for method public void fi.utu.nettiopsu.selenium.student.function.ExamRegistrationTest.examRegistrationTest()
at org.unitils.dbunit.DbUnitModule.insertDataSet(DbUnitModule.java:156)
at org.unitils.dbunit.DbUnitModule$DbUnitListener.beforeTestSetUp(DbUnitModule.java:557)
at org.unitils.core.Unitils$UnitilsTestListener.beforeTestSetUp(Unitils.java:273)
at org.unitils.UnitilsJUnit4TestClassRunner$TestListenerInvokingMethodRoadie.runBeforesThenTestThenAfters(UnitilsJUnit4TestClassRunner.java:151)
at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:84)
at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:49)
at org.unitils.UnitilsJUnit4TestClassRunner.invokeTestMethod(UnitilsJUnit4TestClassRunner.java:95)
at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:61)
at org.unitils.UnitilsJUnit4TestClassRunner.access$000(UnitilsJUnit4TestClassRunner.java:44)
at org.unitils.UnitilsJUnit4TestClassRunner$1.run(UnitilsJUnit4TestClassRunner.java:62)
at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34)
at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44)
at org.unitils.UnitilsJUnit4TestClassRunner.run(UnitilsJUnit4TestClassRunner.java:68)
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53)
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:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
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)
    Caused by: org.unitils.core.UnitilsException: File with name com/company/app/selenium/role/function/RegTest.xml cannot be found.
at org.unitils.core.util.FileResolver.resolveFileName(FileResolver.java:118)
at  org.unitils.dbunit.datasetfactory.impl.DefaultDataSetResolver.resolve(DefaultDataSetResolver.java:88)
at org.unitils.dbunit.DbUnitModule.getDataSet(DbUnitModule.java:368)
at org.unitils.dbunit.DbUnitModule.getDataSet(DbUnitModule.java:320)
at org.unitils.dbunit.DbUnitModule.insertDataSet(DbUnitModule.java:147)

I have the "missing" xml file on the same package as my test class.

Test class is

          @DataSet({"RegTest.xml"})
      public class RegTest extends TestBase {

I get the same error even if I'm not defining the file name on anotation.

Was it helpful?

Solution

Relocate RegTest.xml file to test/resources. You also need to use in your file unitils.properties property: dbUnit.datasetresolver.prefixWithPackageName=false - this property say to unitils don't use for search pakage name before your file. After all these changes unitils will start to look for RegTest.xml in folder test/resources.

I hope it will help.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top