тест мавен зависает - PullRequest
       7

тест мавен зависает

3 голосов
/ 21 марта 2012

У меня странная проблема с запуском юнит-тестов от maven. У меня есть набор модульных тестов, которые отлично работают, если они запускаются один за другим. Однако, когда я запускаю их из maven (mvn test), он зависает (блокируется навсегда).

Он всегда висит в одной и той же точке (один и тот же класс теста) в классе 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)

Я понятия не имею, куда идти отсюда. Любые предложения приветствуются.

1 Ответ

0 голосов
/ 21 марта 2012

Возможно мертвая блокировка ресурса? Учитывая комментарий о порождении другого maven-процесса, это может указывать, куда идти. Вы можете попытаться вставить синхронизацию в ваш тест где-нибудь (или во все методы), чтобы увидеть, исчезнет ли он. Если это так, то это может быть тупик.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...