testing - 在常见的 spring 上下文中运行 Spock 测试
问题描述
我使用 Spock 框架来运行我的测试。每个测试类都有 Spring 的注解@ContextConfiguration
。正如我所看到的,每个测试类都会出现上下文,并且在不同的类中运行几十个测试需要花费大量时间。有没有办法将 Spock 测试类配置为在常见的 spring 上下文下运行?
解决方案
这不是关于斯波克,而是关于春天。
Spring 可以在许多测试用例的通用应用程序上下文中缓存,但您必须知道如何正确执行。
作为第一选择,请确保 'locations' 属性@ContextConfiguration
是相同的。
此外,还可以利用@ContextHierarchy
注释。
这种缓存设施非常脆弱,但可以工作。
也许用所有注释创建一个通用规范并从中继承是有意义的:
@ContextConfiguration(locations = ...)
// or maybe
@ContextHierarchy (...)
public abstract class MyCommonSpec extends Specification {
}
// and not in tests:
public class MyTest1 extends MyCommonSpec {
...
}
public class MyTest2 extends MyCommonSpec {
...
}
这是一个非常相关的讨论的链接
推荐阅读
- c# - 如何在一个 ZIP 文件中归档多个文件?
- speech-recognition - PocketSphinx - getHypstr() 在 processRaw 之后为 KeyphraseSearch 返回空
- mysql - 无法启动 Mysql 并出现错误代码:找不到 PID 文件
- apache-kafka - 在 Fluentd 问题中过滤
- python - 扫描列表时嵌套循环意外中断
- html - NSAttributedString 到 HTML 目标-c
- c# - Python itertools C# 等效
- javascript - 如何在角度 4 的单个 api 请求中上传文件和表单数据
- c# - 意外修改字典
- javascript - 排队异步请求