- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个测试类,它使用 @TestPropertySource
加载 hsqldb
。
本质上,测试文件已经变得相当大,我想把它分解一下。问题是加载数据库需要......一些时间。不是太多,但我不想创建多个测试文件,每个文件都会加载数据库。
我的代码如下所示:
@TestPropertySource(properties = {
"hsqldb.name=SettingsTest"
})
@ContextConfiguration(classes = { settings.config.Config.class }, loader = AnnotationConfigContextLoader.class)
@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_CLASS)
public class SvcTest
.
.
.
这将运行一些函数来加载数据库。据我了解,一旦测试文件完成所有测试,它将停止数据库。如何保持它运行以便其他文件可以使用数据库,并仅在完成后才将其关闭?
最佳答案
尝试缓存测试类之间的应用程序上下文,同时使用 @DirtiesContext
将测试标记为“脏”有点矛盾:
DirtiesContext: Test annotation which indicates that the ApplicationContext associated with a test is dirty and should therefore be closed and removed from the context cache.
如果您仅使用注释来重置数据库的状态,则可以创建 ClassRule
手动重置数据库中的测试数据,而不是拆除并重建完整的应用程序上下文。
此外,如果测试集中在应用程序的存储库部分,Spring 会提供 test slicing
。测试切片加载应用程序上下文的一小部分,从而减少加载时间。一个示例是 @JdbcTest
注释,用于专注于基于 JDBC 的组件的 JDBC 测试。
关于java - 如何仅使用 TestPropertySource 加载数据库一次并在多个测试类中使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58456615/
我是一名优秀的程序员,十分优秀!