Orden de ejecución de tests
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Al definir múltiples tests en un Spec, Kotest sigue un orden específico para ejecutarlos.
Por defecto, se usa un orden secuencial (el mismo orden en que aparecen definidos en el archivo), pero también es posible configurarlos para que se ejecuten en orden aleatorio u orden lexicográfico.
Esta configuración puede definirse individualmente en cada Spec (para control granular) o en ProjectConfig sobrescribiendo la función testCaseOrder (para valores predeterminados de todo el proyecto). Si existen ambas configuraciones, la del Spec tiene prioridad.
Los tests anidados siempre se ejecutan en orden secuencial, independientemente de la configuración de ordenación.
Orden secuencial
Los tests raíz se ejecutan en el orden en que están definidos en el archivo spec.
class SequentialSpec : FreeSpec() {
override fun testCaseOrder(): TestCaseOrder? = TestCaseOrder.Sequential
init {
"foo" {
// I run first as I'm defined first
}
"bar" {
// I run second as I'm defined second
}
}
}
Orden aleatorio
Los tests raíz se ejecutan en un orden aleatorio.
class RandomSpec : FreeSpec() {
override fun testCaseOrder(): TestCaseOrder? = TestCaseOrder.Random
init {
"foo" {
// This test may run first or second
}
"bar" {
// This test may run first or second
}
}
}
Orden lexicográfico
Los tests raíz se ejecutan en orden lexicográfico.
class LexicographicSpec : FreeSpec() {
override fun testCaseOrder(): TestCaseOrder? = TestCaseOrder.Lexicographic
init {
"foo" {
// I run second as bar < foo
}
"bar" {
// I run first as bar < foo
}
}
}