11

いくつかのクイックチェックテストをcabalと統合する方法を理解しようとしています。この要点quickCheckは、関数が失敗するとゼロ以外のステータスを返すことを示唆していますが、その動作は得られないため、テスト全体exitcode-stdio-1.0を呼び出したくない限り、cabalのテストスイートタイプを使用してもうまくいかないようですerror

カバールのユーザーガイドにもdetailed-1.0テストスイートが記載されていますが、AFAICTはまだ存在していません。それでもそうですか?

このような回答から、多くの人がテストフレームワークパッケージを使用しているようです。それは私にとってやり過ぎですが、それは私が使うべきものですか?

私はこの状況に少し不満を残しています。

私が使用しているもののバージョン:

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

2 に答える 2

17

quickCheckの実装を見ると、実際にプログラムを終了することはありません。ただし、次を使用してこの動作を簡単に実装できます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は今のところ推奨されるテストソリューションです。

于 2012-01-23T18:33:09.620 に答える
6

Decimalパッケージの最新バージョンでテストフレームワークを使用しました。それはやり過ぎではありませんでした。それはまさに望んでいたことをしました。使用方法の例が必要な場合は、完全なソースコードをご覧ください。

于 2012-01-23T19:24:02.470 に答える