问题标签 [springjunit4classrunner]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - 测试后 SpringJUnit4ClassRunner 是否仍然不能可靠地调用 DisposableBean.destroy
根据:https: //jira.spring.io/browse/SPR-4103 SpringJUnit4ClassRunner 在测试后不会总是调用 DisposableBean.destroy (*facepalm*!) - 由于 JUnit 的实现问题。
这仍然是真的吗?
我在 scala 中创建测试,如下所示:
而且我发现执行 Service2Test 时,Service1Config 中 bean 的 destroy 方法没有被销毁。
我发现很多文章都建议添加 @After 来明确关闭上下文。这听起来像是一个等待发生的错误(因为如果您忘记在一个测试中添加 @After 清理,下一个测试类将失败,您将不知道为什么)。
如果使用 SpringJUnit4ClassRunner/JUnit 仍然无法做到这一点,是否有一个测试框架会在每次测试后自动调用上下文清理?
spring-batch - 无法加载 ApplicationContext:Spring 和 junit
我正在为 Spring 应用程序编写单元测试。我已经把我SpringContext.xml
的pe.edu.upc.demo.configuration
。
SpringContext.xml:
如您所见,SpringContext.xml
位于src/main/java/pe/edu/upc/demo/configuration
. 我在 Netbeans 中编程。我想知道这条路是否正确。
}
之后,我运行“CursoTest”的测试,我得到这个跟踪:
spring - 在 Spring 测试中禁用 @EnableScheduling
当我运行单元测试时,它会调用我的计划任务。我想防止这种行为,这是由于我@EnableScheduling
在我的主应用程序配置上的事实造成的。
如何在我的单元测试中禁用它?
我遇到了这个建议设置配置文件的 问题/答案?
不知道我会怎么做?或者如果它是一个矫枉过正?我正在考虑为我的单元测试使用单独的 AppConfiguration,但是当我这样做时感觉就像我重复了两次代码?
单元测试示例。
unit-testing - SpringJUnit4ClassRunner - 为每个测试重新加载上下文,即使使用了相同的上下文
这是我们单元测试的基类:
所有单元测试都扩展了这个类。
当我在 Eclipse 中本地运行测试时(使用 Run As > Unit Test),测试运行大约 5 秒,因为所有测试共享相同的上下文并且它只加载一次。
但是,当我使用 mvn 测试目标运行它们时,大约需要 5 分钟。查看日志后,我看到每次测试都在加载应用程序上下文。我们在 Jenkins CI 服务器上运行它需要同样的时间(5 分钟)。
不知道发生了什么。在 spring 文档中,它声明即使使用 maven 也应该重用 appContext,但这里不是这种情况。
任何帮助,将不胜感激。
更新: 我在打开调试标志的情况下运行 mvn,我看到每个测试都生成了一个新的 JVM:
分叉命令行: cmd.exe /X /C "java -Xverify:none -jar S:\git\picaxo21\picaxo\picaxoService\target\surefire\surefirebooter8169952914558366417.jar S:\git\picaxo21\picaxo\picaxoService\target\ surefire\surefire8550033206398936560tmp S:\git\picaxo21\picaxo\picaxoService\target\surefire\surefire_05655453605766528120tmp"
分叉命令行: cmd.exe /X /C "java -Xverify:none -jar S:\git\picaxo21\picaxo\picaxoService\target\surefire\surefirebooter4002024477779069323.jar S:\git\picaxo21\picaxo\picaxoService\target\ surefire\surefire6735432532690834115tmp S:\git\picaxo21\picaxo\picaxoService\target\surefire\surefire_17783676008756503456tmp"
分叉命令行: cmd.exe /X /C "java -Xverify:none -jar S:\git\picaxo21\picaxo\picaxoService\target\surefire\ 7874269889863176184.jar S:\git\picaxo21\picaxo\picaxoService\target\ surefire\surefire2050758518148174678tmp S:\git\picaxo21\picaxo\picaxoService\target\surefire\surefire_27591156970671336255tmp"
我正在使用 forkCount=1 和 reuseForks=true 所以我不确定为什么会这样。任何线索?
父 POM:
java - 日志不打印
我目前正在研究一个使用弹簧的项目。对于 Junit,我正在使用 @RunWith(SpringJUnit4ClassRunner.class) 注释。一切工作正常,除了我没有看到 applicationContext 的 spring 处理的任何日志。在控制台窗口中,这是一条当前消息:
我将 log4j.properties 保存在 Eclipse 的 src/main/resources 文件夹中(使用 maven 项目)。以下是内容:
Log4j.properties ;
已经查看了关于类似问题的 Q/A。但仍然不知道是什么问题。这里有人可以帮我吗?
谢谢
spring - 为什么使用 SpringJUnit4ClassRunner.withAfterClasses 方法出现神秘的 MultipleFailureException 错误消息
为什么我的 spring 测试设置失败并出现以下不太有用的错误消息?所有建议表示赞赏。
JUnit 输出
控制台输出
指定自定义侦听器类或使默认侦听器类(及其所需的依赖项)可用。违规类:[org/springframework/transaction/interceptor/TransactionAttribute] 信息:org.springframework.test.context.support.DefaultTestContextBootstrapper - 无法实例化 TestExecutionListener [org.springframework.test.context.transaction.TransactionalTestExecutionListener]。指定自定义侦听器类或使默认侦听器类(及其所需的依赖项)可用。违规类:[org/springframework/transaction/interceptor/TransactionAttributeSource] 信息:org.springframework.test.context.support.DefaultTestContextBootstrapper - 使用 TestExecutionListeners:[org.springframework.test.context.web.ServletTestExecutionListener@76959acc,org.springframework。 test.context.support。
这是目标片段
和测试片段
gradle - 运行 Gradle JUnit 测试时出现“地址已在使用:绑定”异常
我将 Spring Boot 1.2.1.RELEASE、JUnit4 和 Gradle 2.1 用于 RESTful 服务,并尝试定义一个属性文件,其中包含和/或覆盖仅在 JUnit 测试中使用的值。当作为 JUnit 测试调用时,所有测试都会毫无问题地执行。但是,当这些相同的测试在 gradle “build” 或 “test” 任务期间运行时,它们会失败并出现异常“Caused by: java.lang.IllegalStateException: Tomcat connector in failed state”,根本原因是“java.net .BindException:地址已在使用中:绑定”。
有多个测试类需要应用程序上下文才能运行。
为了通过属性文件促进替代值,我包含了 TestPropertySource()
是否需要额外的 Gradle 配置才能完成这项工作?
控制器测试类
application.properties (/src/main/resources)
应用程序-junit.properties (/src/test/resources)
构建.gradle
堆栈跟踪:
java - How do I use @RunWith with both JUnit4ClassRunner and JUnitParams?
I am writing an integration test that is a parameterized test, and I need to include @RunWith(SpringJUnit4ClassRunner.class) and @RunWith(JUnitParamsRunner.class). The problem is that I can only specify one @RunWith. Is there a workaround to this problem?
java - Junit测试;是否可以在应用程序上下文启动之前配置 Bean 的默认属性?
我有一个带有属性“DBServer”的Bean;它的默认值为“location1”;
在应用程序启动期间,根据“DBServer”的值,实例化不同的类。
我有 200 个测试,这个默认设置很好。
但是,截至目前,我想测试替代方案。
问题:
有没有办法在应用程序上下文启动之前从 junit 测试用例中重置默认值?
java - 导入 org.springframework.test.context.junit4.SpringJUnit4ClassRunner 无法解析
我是 Spring 的新手,这也是我在 StackOverflow 上的第一个问题,所以我将尝试让这个问题尽可能容易理解。
我正在尝试在本教程中使用 Spring 和 Maven 创建 Web 服务客户端:我收到此错误:无法解析导入 org.springframework.test.context.junit4
这是我的代码:
这是我pom.xml
的,以备不时之需。
我在 StackOverflow 中尝试了其他一些解决方案,但我无法让它工作。
谢谢。