我使用 Spock 进行测试,我有多个类要测试。我想告诉 Spock 按特定顺序测试每个类。有没有办法做到这一点?我注意到 TestNG 有@AfterTest注释,所以 Spock 有类似的东西吗?
您不能指定 Spock 测试类的执行顺序。但是,Spock 允许您在@Stepwise向测试类添加注释时指定方法的执行顺序- 在这种情况下,Spock 将按从上到下的顺序执行所有方法,如果一个方法失败,它将忽略此测试类中的其余方法。
指示规范的功能方法应按其声明的顺序顺序运行(即使存在并行规范运行器),始终从第一个方法开始。如果一个方法失败,其余的方法将被跳过。在 super- 和 subspecs 中声明的特征方法不受影响。
@Stepwise对于方法之间具有(逻辑)依赖关系的规范很有用。特别是,它有助于避免方法失败后的连续错误,从而更容易理解真正出错的地方。
参考:http : //spockframework.org/spock/javadoc/1.1/spock/lang/Stepwise.html
@Stepwise
class StepwiseExample extends Specification {
def "first test method to run"() {
// ....
}
def "second test method to run"() {
// ....
}
def "if previous method failed this one will be ignored"() {
// ....
}
}
Run Code Online (Sandbox Code Playgroud)
org.junit.runners.SuiteJeff Scott Brown对 JUnit 的@Suite.SuiteClasses. 在这种情况下,您可以创建一个类,您可以在其中将测试类(规范)聚合到单个测试套件中,并且这些类将按照它们在套件中定义的顺序执行。考虑以下示例:
import org.junit.runner.RunWith
import org.junit.runners.Suite
@RunWith(Suite)
@Suite.SuiteClasses([
Test2Specification,
Test1Specification
])
class TestSuiteSpecification { }
Run Code Online (Sandbox Code Playgroud)
这间套房执行两种规格Test2Specification,并Test1Specification在定义的顺序:
| 归档时间: |
|
| 查看次数: |
2643 次 |
| 最近记录: |