当前位置: 首页 > 知识库问答 >
问题:

Maven在运行Spring JUnit测试后挂起

燕璞
2023-03-14

使用maven对Spring应用程序进行单元测试后,在完成构建时遇到问题。我注意到mvn安装没有完成,在运行了所有单元测试之后,它似乎挂起了。如果运行mvn install我将从cmd行获得要完成的测试,但构建挂起

Results :

Tests run: 34, Failures: 0, Errors: 0, Skipped: 0

14:20:15,588 [Thread-3] INFO  GenericApplicationContext  - Closing org.springframework.context.support.GenericApplicationContext@10a3b24: startup date [Wed Apr 25 14:20:08 EDT 2012]; root of context hierarchy
14:20:15,589 [Thread-3] INFO  DefaultListableBeanFactory  - Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@16c163f: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,sysModel,alarmList,resourcePool,sysParams,stationHelper,commandTracker,org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor#0]; root of factory hierarchy
14:20:15,595 [Thread-7] INFO  GenericApplicationContext  - Closing org.springframework.context.support.GenericApplicationContext@c5577c: startup date [Wed Apr 25 14:20:10 EDT 2012]; root of context hierarchy
14:20:15,596 [Thread-7] INFO  DefaultListableBeanFactory  - Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@10952e8: defining beans [alarmDao,purgeDao,xactionDao,dataSource,sysModel,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor#0]; root of factory hierarchy

这就是它的结尾。两个线程正在运行,不确定我在那里做了什么。无论如何,为了排除故障,我删除了所有测试并让程序完全构建。如果我运行mvn install-DskipTest,我就可以完成它。最后,我添加了一个JUnit测试,它本质上是一个system.out.println(“hello world”);。我可以通过注释掉JUnit注释“@RunTo(SpringJUnit4ClassRunner.class)”来让安装运行测试并完成安装。我使用的是Spring 3.1.0。RELEASE。

这个版本的问题来自于我在Windows7上的开发机器,但是我们基于Linux(Ubuntu11.10)。Hudson CI server使用相同的SVN存储库在同一项目上成功运行Maven install,每小时进行一次构建。

共有2个答案

祁嘉言
2023-03-14

在Spring应用程序上下文关闭期间,线程之间似乎存在一些争用。您可以尝试打开Spring框架调试级别的日志,以查看争用的位置,如果可以,可以消除争用。

如果在应用程序上下文中看起来没有问题,另一种选择是调整插件配置。surefire插件用于执行测试,它具有在多个线程中运行测试的选项。首先使用-X运行mvn以查看线程选项(并行、线程计数、perCoreThreadCount等)使用了哪些值。调整surefire插件配置(执行ID为default-test)以确保只有一个线程正在执行,并查看您是否可以让install在Windows 7上运行。

一旦它在Windows中运行:当前的surefire配置(可能是super POM提供的默认配置)在CI环境中运行良好。因此,我将创建一个配置文件,如果在Windows 7环境下运行,则激活该配置文件,并将已识别的surefire插件配置移动到该配置文件中。

刁远
2023-03-14

可能你的一个春豆正在繁殖一条线。使用jconsole连接到卡住的进程,查看挂起的是什么。您可以通过在有问题的bean上使用@PreDestroy在关闭时取消线程来修复它。

 类似资料:
  • 问题内容: 使用和我可以进入有问题的等待线程,但不知道如何对其进行故障排除或造成此故障的原因。参见下面的Maven依赖项和结果以及带有的等待线程。进一步分析,对于所选版本,Eclipselink和hsqldb之间似乎存在问题。由于升级这两个库而导致出现此问题,因为它们以前分别适用于Eclipselink和hsqldb的2.0.1和1.8.0.10版本。 而堆栈跟踪是: 问题答案: 确实确实看起来像

  • 问题内容: 我在Eclipse中创建了一个新的maven项目,该项目通过使用HtmlUnitDriver和FirefoxDriver来调出一个网页并检查页面标题来运行简单测试。当我运行maven命令mvn test时,这就是我得到的一切: 当我在Eclipse中运行相同的Maven命令时,它显示以下内容: 这是我的pom.xml,供那些想要检查是否可能是问题的人使用: 问题答案: 您是说要添加为P

  • 我目前正在为Hibernate项目Hibernate Search构建一个新包,我需要使用Arquillian在托管的WildFly容器中运行一些单元测试。当我使用命令时,我得到了以下错误: org.jboss.arquillian.container.spi.配置异常:jbossHome'${project.build.directory}/node1/wilfly-${org.wildfly}

  • 我有一个Maven/SpringBoot2.3。3应用JUnit 5和Cucumber(v6.5.1)测试。 问题是,我可以通过Maven运行OK单元测试和集成测试,但它不运行Cucumber。 cucumber赛跑者: Cucumber Spring上下文配置: 步骤: 我在Maven pom中使用Surefire和故障保护。xml:https://github.com/danieldestro

  • 你好,我正在尝试使用Maven运行一个JUnit测试。 [信息]没有要编译的内容-所有类都是最新的 [信息] [信息]--maven-surefire-plugin:2.10:test(default-test)@uitests-core-- 我不知道为什么它不能运行我的测试。请帮帮我。

  • 有没有人能告诉我为什么我不能使用Maven运行任何测试。 已配置SureFire插件 在runner类下设置胶合代码 “测试”被追加到runner类 注意:如果我将文件作为Junit运行,那么它可以正确地运行所有场景。只有当我使用Maven运行它时,才不会运行任何测试。