Ir al contenido principal
Versión: 6.1

Orden de ejecución de tests

[Traducción Beta No Oficial]

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.

nota

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
}
}
}