Domanda

Sto cercando di capire come integrare alcuni test di controllo rapido con Cabala. Questo GIST suggerisce che il quickCheck La funzione restituisce lo stato diverso da zero al fallimento, ma non sto ottenendo quel comportamento, quindi usando Cabala exitcode-stdio-1.0 Il tipo di test-suite non sembra funzionare per me se non voglio chiamare error Tutti i miei test.

La cabala guida utente menziona anche a detailed-1.0 Test-Suite, ma afaict questo non esiste ancora. È ancora così?

Sembra da risposte come Questo che molte persone stanno usando il Pacchetto test-framework. È eccessivo per me, ma è quello che dovrei usare?

Sono rimasto insoddisfatto da questa situazione.

Versioni delle cose che sto usando:

cabal-install version 0.10.2
using version 1.10.1.0 of the Cabal library
QuickCheck-2.4.1.1
È stato utile?

Soluzione

Guardando quickCheckImplementazione, in effetti non esce mai al programma. Tuttavia, puoi implementare facilmente questo comportamento usando 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

La mia comprensione è quella detailed-1.0 non è ancora considerato pronto per l'uso generale, e quello exitcode-stdio-1.0 è ancora la soluzione di test consigliata per ora.

Altri suggerimenti

Ho usato Test-Framework nell'ultima versione del mio Decimale pacchetto. Non era eccessivo; Ha fatto proprio quello che voleva. Dai un'occhiata al Codice sorgente completo Se vuoi un esempio di come usarlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top