Java 使用Maven进行JunitTest时发生初始化错误
我试图用Maven3做一些Junit测试,但在执行带有Junit注释的测试(所有其他测试运行正常)时,总是会出现一些初始化错误(这里有些testclass)。当我在Eclipse中运行测试时,一切正常。但是用maven运行测试将会失败。 我的Testproject打包为eclipse插件。 我使用maven osgi测试插件 我的testclass注释如下:Java 使用Maven进行JunitTest时发生初始化错误,java,junit,eclipse-plugin,maven,Java,Junit,Eclipse Plugin,Maven,我试图用Maven3做一些Junit测试,但在执行带有Junit注释的测试(所有其他测试运行正常)时,总是会出现一些初始化错误(这里有些testclass)。当我在Eclipse中运行测试时,一切正常。但是用maven运行测试将会失败。 我的Testproject打包为eclipse插件。 我使用maven osgi测试插件 我的testclass注释如下: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locatio
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:applicationContext.xml")
@TransactionConfiguration
public class ArtifactManagerTest extends
AbstractTransactionalJUnit4SpringContextTests {...
对于每个用@ContextConfiguration注释的testclass,都有classname-test.xml文件。在这个配置文件中,我通过“classpath:”导入applicationContext-Test.xml
测试插件的My pom.xml如下所示:
<groupId>foo.bar</groupId>
<artifactId>company.xyz</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>eclipse-test-plugin</packaging>
<build>
<plugins>
<plugin>
<groupId>org.sonatype.tycho</groupId>
<artifactId>maven-osgi-test-plugin</artifactId>
<configuration>
<useUIHarness>true</useUIHarness>
<testSuite>company.xyz.test</testSuite>
<testClass>company.xyz.AllTests</testClass>
<argLine>-Xmx512m</argLine>
<bundleStartLevel>
<bundle>
<id>org.eclipse.equinox.ds</id>
<level>1</level>
<autoStart>true</autoStart>
</bundle>
</bundleStartLevel>
</configuration>
<inherited>true</inherited>
</plugin>
</plugins>
</build>
foo.bar
company.xyz
1.0.0-SNAPSHOT
eclipse测试插件
org.sonatype.tycho
maven osgi测试插件
真的
company.xyz.test
company.xyz.AllTests
-Xmx512m
org.eclipse.equinox.ds
1.
真的
真的
故障输出如下:
initializationError(company.xyz.ArtifactManagerTest) Time elapsed: 0 sec (ParentRunner.java:66)
at org.junit.runners.BlockJUnit4ClassRunner.(BlockJUnit4ClassRunner.java:59)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.(SpringJUnit4ClassRunner.java:104)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:31)
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:24)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java
:29)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
at org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:93)
at org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:84)
at org.junit.runners.Suite.(Suite.java:101)
at org.junit.runners.Suite.(Suite.java:67)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:35)
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:24)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java
:29)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
at org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:93)
at org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:84)
at org.junit.runners.Suite.(Suite.java:101)
at org.junit.runners.Suite.(Suite.java:67)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:35)
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:24)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java
:29)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24)
at org.apache.maven.surefire.junit4.JUnit4TestSet.(JUnit4TestSet.java:45)
at org.apache.maven.surefire.junit4.JUnit4DirectoryTestSuite.createTestSet(JUnit4DirectoryTestSuite.java:56)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.locateTestSets(AbstractDirectoryTestSuite.java:96)
at org.apache.maven.surefire.Surefire.createSuiteFromDefinition(Surefire.java:209)
at org.apache.maven.surefire.Surefire.run(Surefire.java:156)
at org.codehaus.tycho.surefire.osgibooter.OsgiSurefireBooter.run(OsgiSurefireBooter.java:75)
at org.codehaus.tycho.surefire.osgibooter.AbstractUITestApplication$1.run(AbstractUITestApplication.java:25)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4041)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
at org.codehaus.tycho.surefire.osgibooter.UITestApplication.runApplication(UITestApplication.java:21)
at org.codehaus.tycho.surefire.osgibooter.AbstractUITestApplication.run(AbstractUITestApplication.java:109)
at org.codehaus.tycho.surefire.osgibooter.UITestApplication.start(UITestApplication.java:27)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
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.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
初始化错误(company.xyz.ArtifactManagerTest)经过的时间:0秒(ParentRunner.java:66)
位于org.junit.runners.BlockJUnit4ClassRunner。(BlockJUnit4ClassRunner.java:59)
位于org.springframework.test.context.junit4.SpringJUnit4ClassRunner。(SpringJUnit4ClassRunner.java:104)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:513)
位于org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:31)
位于org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:24)
位于org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
位于org.junit.internal.builders.AllDefaultPossibilityBuilder.runnerForClass(AllDefaultPossibilityBuilder.java
:29)
位于org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
位于org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:93)
位于org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:84)
位于org.junit.runners.Suite.(Suite.java:101)
位于org.junit.runners.Suite.(Suite.java:67)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:513)
位于org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:35)
位于org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:24)
位于org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
位于org.junit.internal.builders.AllDefaultPossibilityBuilder.runnerForClass(AllDefaultPossibilityBuilder.java
:29)
位于org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
位于org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:93)
位于org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:84)
位于org.junit.runners.Suite.(Suite.java:101)
位于org.junit.runners.Suite.(Suite.java:67)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:513)
位于org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:35)
位于org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:24)
位于org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
位于org.junit.internal.builders.AllDefaultPossibilityBuilder.runnerForClass(AllDefaultPossibilityBuilder.java
:29)
位于org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
位于org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24)
位于org.apache.maven.surefire.junit4.JUnit4TestSet.(JUnit4TestSet.java:45)
位于org.apache.maven.surefire.junit4.JUnit4DirectoryTestSuite.createTestSet(JUnit4DirectoryTestSuite.java:56)
位于org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.locateTestSets(AbstractDirectoryTestSuite.java:96)
位于org.apache.maven.surefire.surefire.createSuiteFromDefinition(surefire.java:209)
位于org.apache.maven.surefire.surefire.run(surefire.java:156)
位于org.codehaus.tycho.surefire.osgibooter.OsgiSurefireBooter.run(OsgiSurefireBooter.java:75)
位于org.codehaus.tycho.surefire.osgibooter.AbstractUITestApplication$1.run(AbstractUITestApplication.java:25)
位于org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
在org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)上
位于org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4041)
在org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660)上
位于org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
位于org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
位于org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
位于org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
位于org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
在org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:
Result r=new JUnitCore().run(ArtifactManagerTest.class);
for(Failure f:r.getFailures()){
System.out.println(f);
}