Lanzamiento 5.0
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Este documento está en desarrollo y se completará en los próximos días tras el lanzamiento de la versión 5.0.
Cambios importantes
Kotlin 1.6 es ahora la versión mínima requerida
A partir de la versión 5, Kotest requiere Kotlin 1.6. Esta decisión se basa en dos motivos.
En primer lugar, la característica principal en la serie de lanzamientos 5.0 es el soporte para pruebas multiplataforma, y existen incompatibilidades en el compilador entre Kotlin 1.5 y 1.6. Dar soporte a ambas versiones añadiría complejidad innecesaria al proceso de compilación.
En segundo lugar, las duraciones kotlin.time.Duration han alcanzado estabilidad en la versión 1.6, y Kotest depende internamente de estas. Queríamos aprovechar la funcionalidad multiplataforma que ofrecen las duraciones de Kotlin sin problemas derivados de cambios en versiones anteriores de estas clases.
Soporte para el compilador JavaScript heredado eliminado
El soporte para el compilador JavaScript heredado ha sido discontinuado. Si ejecutas pruebas en JS heredado, deberás continuar usando Kotest 4.6.x o configurar tu compilación de pruebas JavaScript para usar exclusivamente el compilador IR.
El soporte de pruebas para el compilador JavaScript heredado dependía de funcionalidad eliminada en el compilador IR (concretamente, que el adaptador de framework ya no funciona con módulos de terceros). Para la versión 5.0, Kotest proporciona un plugin de compilador que integra pruebas directamente en el resultado compilado, exactamente como funciona el soporte de kotlin.test.
Objeto de configuración global eliminado
En versiones anteriores, Kotest permitía actualizar la configuración mediante un objeto global llamado configuration (denominado project en versiones más antiguas). A partir de este lanzamiento, se ha eliminado esta val de nivel superior.
La razón de su eliminación es que el estado global complicaba el uso de múltiples instancias del Test Engine en la misma JVM, además de que no existía una semántica precisa para el orden de actualizaciones de una val de nivel superior.
El primer aspecto era principalmente un problema al probar el propio Kotest, ya que los usuarios normalmente no crean instancias de TestEngine directamente, sino que ejecutan pruebas mediante gradle o intellij.
Esta val de nivel superior no estaba documentada, por lo que la mayoría de usuarios desconocían su existencia. El enfoque recomendado para definir la configuración de Kotest sigue siendo ProjectConfig o propiedades del sistema.
Clases experimentales de pruebas de datos trasladadas
Las funciones experimentales withData para pruebas de datos añadidas en la versión 4.5 bajo el paquete io.kotest.datatest se han movido al nuevo módulo kotest-framework-datatest.
Nota: Estas son independientes de las funciones forAll y forNone para pruebas de datos, presentes en Kotest desde la versión 2.0.
Método obsoleto Arb.value eliminado de las pruebas de propiedades
Se ha eliminado el método Arb.values() de la interfaz Arb. Este método se marcó como obsoleto en la versión 4.3 en favor de Arb.sample, introducido para permitir mapeo plano (flat-mapping) de Arb. Solo afectará a quienes hayan implementado un arb personalizado que extienda Arb directamente y sigan usando el método obsoleto. Los usos existentes de los constructores arbitrary no se ven afectados, siendo siempre la forma preferida de crear arbitrarios personalizados.
Volcado de configuración al inicio desactivado por defecto
El motor ya no registra la configuración en la consola durante el inicio por defecto. Para habilitar esta salida, establece la propiedad del sistema o variable de entorno kotest.framework.dump.config en true.