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
Était-ce utile?

La solution

Regarder quickCheckimplé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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top