- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试运行 mvn integration-test
阶段,我得到 Failed to load ApplicationContext
执行集成测试时出错(单元测试正确执行)。我正在使用 SpringJUnit4ClassRunner
运行我的测试类使用。
这是完整的堆栈跟踪:
2017-02-09 03:22:15.705 [main] ERROR o.s.t.context.TestContextManager - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@5c072e3f] to prepare test instance [com.dentilax.app.accountservice.AccountServiceIT@768b970c]
java.lang.IllegalStateException: Failed to load ApplicationContext
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: java.lang.IllegalStateException: Neither GenericXmlContextLoader nor AnnotationConfigContextLoader was able to load an ApplicationContext from [MergedContextConfiguration@71623278 testClass = AccountServiceIT, locations = '{}', classes = '{}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{}', contextCustomizers = set[[empty]], contextLoader = 'org.springframework.test.context.support.DelegatingSmartContextLoader', parent = [null]].
at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:263)
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
... 25 common frames omitted
Configuration
类(class)
here .我究竟做错了什么?
@RunWith(SpringJUnit4ClassRunner.class)
@Transactional
public class PatientServiceIT {
private static final String EMAIL = "account@test.com";
private static final String NAME = "test";
private static final String SURNAMES = "account";
private static final String PASSWORD = "testaccount";
private static final String POSTAL_CODE = "15002";
private static final String MOBILE_NUMBER = "694749217";
@Autowired
private AccountRepository accountRepository;
@Autowired
private PatientRepository patientRepository;
@Autowired
private PatientService patientService;
private PatientDetails createPatientDetails() {
return new PatientDetails(EMAIL, PASSWORD, NAME, SURNAMES, MOBILE_NUMBER, POSTAL_CODE);
}
private Account createPatient() {
Account patientAccount = new Account(EMAIL, PASSWORD, NAME, SURNAMES, Role.ROLE_DENTIST);
Patient patient = new Patient(POSTAL_CODE, MOBILE_NUMBER);
patientAccount.setPatient(patient);
return patientAccount;
}
@Test
public void savePatient() {
// call
Patient patient = patientService.save(createPatientDetails());
// assert
assertEquals(patient.getAccount(), createPatient());
}
}
integration-test
起诉 maven 故障保护目标和万无一失 来自
test
目标。
最佳答案
您缺少 @ContextConfiguration(classes = ...)
的上下文定义测试中的注释。如 classes
您可以定义单个配置或整个生产应用程序上下文(包括所有其他配置)。仅声明您需要的配置类的好处是整个测试的引导速度更快。
注意:Spring 测试缓存其指定的应用程序上下文。如果您必须使用整个配置运行 9/10 测试,与声明一组新的上下文配置相比,再次使用整个配置将花费更少的时间。但是您应该致力于为您的集成测试获得一个小的配置足迹,以便您可以专注于您正在工作的域切片,而不必处理或维护其他上下文配置。
通常,测试使用 SpringJUnit4ClassRunner
运行期望有一个应用程序上下文来运行。
进一步阅读:Link to the spring docs
关于spring - 运行集成测试时无法加载 ApplicationContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42127297/
我想在遗留应用程序中使用 Spring。 核心部分是一个类,我们称之为LegacyPlugin,它代表应用程序中的一种可插入部分。问题是这个类也是数据库连接器,并且用于创建许多其他对象,通常通过构造函
我有 3 个应用上下文: 负责启动 Jetty servlet 容器的全局上下文,从 main() 启动 jetty 中每个 webapp 的 applicationContext 父级(由 Spri
我通过以下代码在应用程序上下文中设置 applicationContext-dao.xml 和 applicationContext-service.xml。 proj
我正在尝试使用 Spring 运行 JUnit 测试,但控制台显示: 无法加载 ApplicationContext 错误。我正在使用 Maven 结构,并且在 src/main/resources
我的applicationContext.xml,webmvc-config.xml在WEB-INF/spring/applicationContext.xml 当我尝试以下操作时,它没有加载,我得到
我正在尝试从 WCSession 获取最新数据我不明白为什么即使我刚刚收到 didReceiveApplicationContext称呼。 更多细节可以直接在代码中获得: //Watch Code o
我正在尝试运行 mvn integration-test阶段,我得到 Failed to load ApplicationContext执行集成测试时出错(单元测试正确执行)。我正在使用 Spring
我在创建测试类时遇到问题。基本上我想测试执行网络调用的 View 模型类。使用 dagger 注入(inject)类网络组件需要上下文参数来检查连接,这是我的 View 模型: class MyVie
我有一个带有 Spring 插件的 struts2 Web 项目。 applicationContext.xml 位于 /WEB-INF/applicationContext.xml 我如何在我的类(
我在一个名为 Controller 的全局类中声明的全局变量有一个小问题,该全局类是从应用程序扩展的。 当我启动 Activity A 时,我在 Controller 中有一个包含 0 个项目的数组列
当我运行我的 spring 集成 junit 类时,我遇到了异常。 这是我的类(class) @RunWith(SpringJUnit4ClassRunner.class) @ContextConfi
我是 java EE spring boot 的新手,我想我会开始一个小项目来掌握一些东西,我目前遇到如上所述的错误 failed to load ApplicationContext 我是不知道为什
我只能在 Spring (3.0.5) jdbc 应用程序(在 Oracle 11.2 上运行)中获取 Activity 的编程事务,当txAdvice指向从应用程序上下文调用的实际方法(mainTe
在servet类中,可以通过这种方式获取spring ApplicationContext ApplicationContext ctx = WebApplicationContextUtils.ge
抱歉,如果我的术语不正确,我是 C# 的新手。我正在尝试使用 ApplicationContext 文件来存储 mysql conn 值,如 dbname、用户名、密码。带有 mysql conn 字
我正在尝试在所有 ContextXXXEvent 上使用 ContextEventListener我为每种事件类型创建了一个监听器,如下所示(ContextRefreshedEvent 是一个示例):
我的应用程序有一个 application-context.xml。现在我将 ApplicationContext 实例化为: ApplicationContext context = new Cla
我正在开发一个 spring 3 web 服务应用程序,我正在尝试从我的 servlett.xml 文件加载 ApplicationContext 以用于一个简单的测试用例,但它不起作用。 Appli
在我的应用程序完成后,我想关闭 spring 上下文。 相关代码有一个 ApplicationContext 引用,但我找不到 close 方法。 最佳答案 贬低你的ApplicationContex
我在尝试为 kotlin 多平台自定义上下文时遇到了这个问题 Actual typealias 'ApplicationContext' has no corresponding expected d
我是一名优秀的程序员,十分优秀!