10

私は、Java プロジェクトで Maven を使用する方法と少し似ているように、haskell プロジェクトをビルドし、さらに重要なことにテストする方法として cabal-install を使用しようとしています。 Jenkinsやciなどに統合されており、コードがコンパイルされて正しいかどうかを確認および確認するために開発環境などをセットアップする必要がないという意味で非常に信頼性が高いようです。

とにかく、これには QuickCheck と HUnit を使用しています。スタック交換に関する別の投稿 で、 HUnitと cabal を統合する良い方法を見つけました。Distribution.TestSuite.HUnit の関数 test を使用して、テスト モジュールに公開されたテスト配列を作成します。動作します。

クイックチェックで同じスタイルのセットアップをしようとしましたが、

    import qualified Distribution.TestSuite.QuickCheck2 as CabalQuickCheck

    alwaysFalseOneArg::Int->(Int,Int)
    alwaysFalseOneArg x = (x,x)

    quickCheckPropOneArg = \s->let (a,b)=alwaysFalseOneArg s  in a==b && a/=b

    cabalQCTest = CabalQuickCheck.test "test" quickCheckPropOneArg

    tests=cabalQCTest:[]

このテストが失敗するのを見たいです。

私が持っている cabal ファイルは、HUnit のセットアップで動作し、HUnit テストが実行され、失敗するか、または失敗しない必要があります。ただし、同じセットアップを使用してクイックチェック テストを実行すると、cabal は実際にテスト スイートを見つけたと報告しますが、その中にテストはありません。Distribution.TestSuite.QuickCheck2のサイトにも記載されているアプローチを試しましたが、テストを公開する方法について言及されていないようで、それを実行することができていないようです。私は今、少し途方に暮れています.quickcheck自体でこれらのquickcheckテストを実行できますが、cabalでは実行できません。これを使用して、すべてのテストとコードをすばやく検証し、Jenkinsなどで使用できるようにしたいと考えています。誰でもアイデアはありますか?

過度に複雑にすることなく、必要と思われるすべての情報を提供しようとしたため、完全な cabal ファイルなどは投稿しませんでした。必要であれば、もちろん投稿します。私はかなりの数の同様の投稿を見つけましたが、それらのほとんどは、セットアップとして HUnit と非常にうまく機能しているように見え、HUnit と QuickCheck の両方を使用したいので、detailed-0.9 以外のものを使用することに要約されます。もちろん、同じ方法で、HUnit テストと QuickCheck テストを同様に含む 1 つのテスト配列を公開することをお勧めします。

カスパー

4

1 に答える 1

3

私はisturdyに同意します: 私は間違いなくtest-framework+に挑戦しtest-framework-quickcheck2ます。プロジェクトでそれらを一緒に使用する方法のこの例を確認してください。と呼ばれるプロパティに注意してくださいprop_*

プロジェクトをチェックアウトしてhaskell-minecraft-tool、テスト出力がどのように見えるかを確認することもできます。でテストを実行します

cabal configure --enable-tests && cabal build && cabal test

.cabalこちらのファイルを見て、必要なパッケージを確認してください。つまり、これらは test-frameworktest-framework-quickcheck2QuickCheckです。

于 2013-06-21T03:08:55.797 に答える