在常见的春季环境下运行Spock测试

时间:2018-09-03 10:57:38

标签: testing spock

我使用Spock框架运行测试。每个测试类都在其上面带有Spring的注释@ContextConfiguration。正如我所看到的,每个测试类都涉及到上下文,在不同的类中运行数十个测试需要花费大量时间。有没有一种方法可以配置Spock测试类以在普通的Spring上下文中运行?

2 个答案:

答案 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的所有测试。

我认为这种方法不是那么完美和完美,但是可以解决最初的问题。