QuickCheckでテストしたときにプロパティテストが失敗した理由を表示するにはどうすればよいですか?quickcheckでテストプロパティが失敗した理由を表示するには?
例えば考えてみましょう:
prop a b = res /= []
where
(res, reason) = checkCode a b
その後のセッションは次のようになります。
> quickCheck prop
Falsifiable, after 48 tests:
42
23
しかし、デバッグのために、quickCheck falsifableの一環として、失敗の理由を示すために、本当に便利です報告する。
私はこのようにそれをハッキングしています
prop a b = if res /= [] then traceShow reason False else True
where
(res, reason) = checkCode a b
はそれを行うためのより良い/よりよい以上quickcheckish方法はありますか?
"reason"変数(何らかの文字列または表示可能な値であると仮定します)が失敗した場合に表示されるように、Resultを正確に返す方法を簡単な例で教えてください。 – maxschlepzig
更新いただきありがとうございます。私はあまりにもhttp://www.cse.chalmers.se/~rjmh/QuickCheck/manual.htmlに固執していたし、最新の包括的なモジュール文書http://hackage.haskell.org/packages/を見ていない。アーカイブ/ QuickCheck/2.4.0.1/doc/html/Test-QuickCheck-Property.html - それは最近の追加であるようです - quickCheck 2.1はそれを含んでいません。 – maxschlepzig