3
我遇到一個奇怪的問題,從maven運行單元測試。如果逐個運行,我有一套完美的單元測試。但是,當我從maven運行(mvn測試)它掛起(塊永遠)。maven測試掛起
它總是掛在本次測試使用的A類中的同一點(相同的測試類)。我嘗試從A.class
中刪除日誌創建,測試開始成功運行。這是該行:
private static final Logger log = LoggerFactory.getLogger(A.class);
這裏的線程轉儲:
"main" prio=6 tid=0x00446c00 nid=0x1278 runnable [0x00a2f000]
java.lang.Thread.State: RUNNABLE
at java.lang.ProcessImpl.waitFor(Native Method)
at org.codehaus.plexus.util.cli.CommandLineUtils.executeCommandLine(CommandLineUtils.java:173)
at org.codehaus.plexus.util.cli.CommandLineUtils.executeCommandLine(CommandLineUtils.java:114)
at org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:231)
at org.apache.maven.plugin.surefire.booterclient.ForkStarter.runSuitesForkOnce(ForkStarter.java:125)
at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:109)
at org.apache.maven.plugin.surefire.SurefirePlugin.execute(SurefirePlugin.java:619)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
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.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
我沒有任何想法哪裏何去何從。歡迎任何建議。
ThreadDump來自maven進程。它表明,一個命令行過程被產生。 – 2012-03-21 14:57:20
Maven在子進程中產生測試 - 你能得到這個子進程的線程轉儲嗎? – Kkkev 2012-03-21 17:54:59