¿Cómo obtener Haskell QuickCheck 2.4 para aumentar las#pruebas?
(2)
Bien, como aprendí a través de mi pregunta anterior , el libro de RWH ya está desactualizado para QuickCheck. Y a pesar de todas las publicaciones que he leído que me dicen lo increíblemente sencillo que es utilizar QuickCheck, no puedo encontrar ningún lugar que me indique cómo cambiar la cantidad de pruebas que se ejecutan para una propiedad.
RWH dice:
handyCheck limit = check defaultConfig {
configMaxTest = limit
, configEvery = /_ _ -> ""
}
¿Cómo hacer esto con QuickCheck 2.4? Más importante aún, ¿cómo me habría enterado? Por favor, no me digas que debería haber podido averiguarlo a partir de la documentación de la API.
Estás buscando:
quickCheckWith stdArgs { maxSuccess = 5000 } someProp
Como me enteré
- Fui a la documentación de la API .
- La segunda cosa que vi, después de
quickCheck
fue el tipoArgs
con un campomaxSuccess
. - No quería escribir todos los campos, así que busqué un valor de tipo
Args
: buscarstdArgs
. (Use la función de búsqueda de su navegador - usualmente ctrl-f). OTOH, podría haber utilizado hoogle . - Necesitaba usar mi tipo
Args
algún lugar, así que seguí buscando. La siguiente línea fuequickCheckWith
- bingo! Por otro lado, podría haber usado hoogle .
¿Qué más se puede averiguar?
Como mencioné anteriormente, podría haber usado Hoogle para encontrar muchas de las funciones, suponiendo que se dé cuenta de que el tipo Args
es el núcleo de lo que necesita (de los abadejos).
De lo contrario, probablemente se vea reducido a lo que hacen los otros paquetes, lo que significa que necesita saber qué otros paquetes merecen la pena mirar. La carpeta de examples en QuickCheck parece obvia, pero no todos los paquetes incluyen tales ejemplos. Al usar dependencias inversas, a menudo puede encontrar un paquete para ver, pero para el control de calidad, muchos de los paquetes no tienen dependencias explícitas.
Para aquellos que desean ejecutar todas las pruebas a la vez y proporcionar su configuración:
return []
main = $forAllProperties (quickCheckWithResult stdArgs { maxSuccess = 500 })