我使用Spock框架运行测试。每个测试类都在其上面带有Spring的注释@ContextConfiguration
。正如我所看到的,每个测试类都涉及到上下文,在不同的类中运行数十个测试需要花费大量时间。有没有一种方法可以配置Spock测试类以在普通的Spring上下文中运行?
答案 0 :(得分:1)
这与斯波克无关,而与春天有关。
Spring可以在许多测试用例中的常规应用程序上下文中进行缓存,但是您必须知道如何正确地进行操作。
首先,请确保@ContextConfiguration
的'locations'属性是相同的。
此外,可以利用@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 {
...
}
这是一个link,内容非常相关
答案 1 :(得分:0)
可行的方法:使用测试创建多个类。例如,A,B,C,D。进行继承,如:D-> C-> B->A。在D中运行测试,这将在通用的Spring上下文中执行A,B,C,D的所有测试。
我认为这种方法不是那么完美和完美,但是可以解决最初的问题。