我使用Spock进行测试,我有多个类要测试。我想告诉Spock按照特定的顺序测试每个类。有办法做到这一点吗?我注意到TestNG有@aftertest
注释,那么Spock也有类似的注释吗?
您不能指定Spock测试类的执行顺序。但是,当您向测试类添加@stepwise
注释时,Spock允许您指定方法的执行顺序--在这种情况下,Spock将按照从上到下的顺序执行所有方法,如果一个方法失败,它将忽略这个测试类中的其余方法。
指示规范的特性方法应按其声明的顺序依次运行(即使存在并行规范运行器),始终从第一个方法开始。如果某个方法失败,将跳过其余的方法。在super-specs和subspecs中声明的特性方法不受影响。
@stepwise
对于方法之间具有(逻辑)依赖关系的规范非常有用。特别是,它有助于避免方法失败后的连续错误,从而更容易理解真正出错的地方。
@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"() {
// ....
}
}
import org.junit.runner.RunWith
import org.junit.runners.Suite
@RunWith(Suite)
@Suite.SuiteClasses([
Test2Specification,
Test1Specification
])
class TestSuiteSpecification { }
这个套件按照定义的顺序执行两个规范Test2specification
和Test1specification
:
如何按特定顺序运行quarkus测试?通常我们有@InSequence注释(来自arquillian IIRC),我们可以实现这一点。 但是我没有找到任何类似的Quarkus在"org.junit.jupiter.api"软件包提供Quarkus-朱尼5。 它将以一个替代的顺序运行,我试图使用org.junit.jupiter.api.顺序与@Testmetodorder(方法命令。nnotati
问题内容: 这是我需要做的。 我在Java中有一个列表,可以将其转换为逗号分隔的ID字符串,例如“ 3,4,5,6,1,2” 我想知道是否有办法将该字符串传递给oracle,并根据该字符串的排序顺序对sql代码进行排序? 所以这个查询: 将导致此顺序 问题答案: 如果可以在Java中修改查询,则可以执行以下操作: 您必须为列表中的每个元素在order by子句中放入一个解码。每次解码中的第二个参数
问题内容: 我有一些测试UI的测试,也可以用来创建数据。 单独的一组测试依赖于此数据,这意味着这些测试必须仅在第一组运行之后才能运行。 我知道要运行一组或使用标签运行它们,但是如何按特定顺序运行它们呢? 问题答案: Nightwatch将按顺序运行特定文件中的每个测试,因此(一个简单的)解决方案是将每个测试按您希望它们运行的顺序放入同一文件中。 如果单个文件的测试太多,这将变得很麻烦。要解决此
给定打印字母a-C的三个线程1-3,如何保证输出顺序? 我希望线程的输出是“abcabc”
问题内容: 我想执行以特定顺序注释的测试方法。 例如: 我想确保每次运行前都运行,但是找不到类似的注释。 我认为对于JUnit来说这是非常重要的功能,如果JUnit的作者不希望使用订单功能,为什么呢? 问题答案: 我认为这对于JUnit来说是非常重要的功能,如果JUnit的作者不希望使用订购功能,为什么呢? 我不确定用JUnit做到这一点的干净方法,据我所知JUnit假定所有测试都可以按任意顺序执
通常,您可以有多个进程,但有时在某些操作中,我们需要确保在执行前一个进程之后执行一个进程。 我们如何在卡蒙达实现它?试图找到类似进程依赖关系的东西(因此进程在上一个进程完成后才开始),但找不到任何东西:( 我考虑在process中添加一些变量(比如),并检查指定的process是否已经完成,但也许会有更好的解决方案。