Statut de sortie QuickCheck sur les échecs et l'intégration de la cabale
-
12-11-2019 - |
Question
J'essaie de comprendre comment intégrer des tests de décortique rapide avec Cabal. Cette essentiel suggère que le quickCheck
La fonction renvoie le statut non nul sur l'échec, mais je n'obtiens pas ce comportement, donc en utilisant la cabale exitcode-stdio-1.0
Le type de suite de test ne semble pas fonctionner pour moi à moins que je ne veuille appeler error
partout dans mes tests.
La cabale mode d'emploi mentionne également un detailed-1.0
Suite de test, mais cela n'existe pas encore. Est-ce toujours le cas?
Il semble à partir de réponses comme celui-ci que beaucoup de gens utilisent le Package de test de travail. C'est exagéré pour moi, mais c'est ce que je dois utiliser?
Je suis un peu insatisfait par cette situation.
Versions des choses que j'utilise:
cabal-install version 0.10.2
using version 1.10.1.0 of the Cabal library
QuickCheck-2.4.1.1
La solution
Regarder quickCheck
implémentation, il ne sort en effet jamais du programme. Cependant, vous pouvez facilement implémenter ce comportement en utilisant quickCheckResult
:
import Control.Monad
import Test.QuickCheck
import Test.QuickCheck.Test
import System.Exit
main :: IO ()
main = do
result <- quickCheckResult prop
unless (isSuccess result) exitFailure
Ma compréhension est que detailed-1.0
n'est pas encore considéré comme prêt pour une utilisation générale, et que exitcode-stdio-1.0
est toujours la solution de test recommandée pour l'instant.
Autres conseils
J'ai utilisé le travail de test dans la dernière version de mon Décimal forfait. Ce n'était pas exagéré; Cela a fait exactement ce qui était voulu. Jetez un œil au Code source complet Si vous voulez un exemple de la façon de l'utiliser.