2012-01-23 4 views
9

キャブールといくつかのクイックチェックテストを統合する方法を理解しようとしています。このgistは、失敗したときにquickCheck関数がゼロ以外のステータスを返すことを示唆していますが、その動作を取得していないため、errorをテスト全体に呼び出さない限り、cabalのexitcode-stdio-1.0テストスイートタイプを使用しても機能しません。失敗時のクイックチェック終了ステータスとキャバレーの統合

キャバルuser guideにはdetailed-1.0テストスイートが記載されていますが、AFAICTはまだ存在しません。それは今の場合ですか?

多くの人がtest-framework packageを使用しているという回答から、this oneと思われます。それは私にとって過度のものですが、私はそれを使うべきですか?

私はこのような状況では不満足です。物事の

バージョン私が使用している:quickCheck's implementationを見て

cabal-install version 0.10.2 
using version 1.10.1.0 of the Cabal library 
QuickCheck-2.4.1.1 

答えて

13

を、それが実際にプログラムを終了することはありません。しかし、あなたは簡単に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 

私の理解では、detailed-1.0がまだ一般的な使用のための準備と考えられ、そしてexitcode-stdio-1.0はまだ今の推奨テストソリューションであるとされていないということです。

+4

私はそれが3歳であることは知っていますが、「isSuccess」を「範囲内にする」ために 'Test.QuickCheck.Test'をインポートする必要があることを理解しようと、あまりにも多くの時間を費やしました。誰もがその問題を抱えている場合。 サイドノートには、それをより良くする方法はありますか? (つまり、 'Test Test.QuickCheck'と' Test.QuickCheck.Test'の両方を行う必要はありませんか?) – conrad

6

私はDecimalパッケージの最新バージョンでtest-frameworkを使用しました。それは過労ではなかった。それはほしいものだけをした。使用方法の例が必要な場合は、complete source codeをご覧ください。

+0

例のおかげで、私はその道を行くと思います – jberryman

関連する問題