私はカバールとの間で、HUnitとの自動テスト機能を有効にしようとしています。私はドキュメントhereとhereを読んだことがありますが、Test-Suiteセクションが表示されているようにセットアップされていますが、いつでも使用しようとすると、パッケージを作成しようとします。cabal build
Cabalはサポートされている唯一のTest-Suiteタイプがexitcode-stdio-1.0
だと言います。何がありますか?HUnitとCabalを使って自動テストを行うには?
答えて
背景
は、だからここの契約だが、徒党サイト上の文書ではなく、これらの機能のすべてが実装されており、まだリリースされている「将来のドキュメント、」です。 Cabal-install 0.14.0には、detailed-0.9
インターフェイスが付属しています。これは、ドキュメント(detailed-1.0
)で指定されているバージョンの背後にあるバージョンですが、まだこれに関連する問題は発生していません。 cabal-install 0.10.2に付属のHaskell Platform version 2011.4をお持ちの場合、detailed-0.9
インターフェイスを使用することはできません。 cabal-install 0.14.0に付属のHaskell Platform 2012.2にアップグレードする必要があります。 cabal-installを別途アップグレードすることもできます。これは、Fedora 17ではHaskell Platformが2011.4にしかないため、私が行ったことです。
ドキュメントhereでインストール
あなたはQuickCheckでdetailed-0.9
インタフェースを使用する方法の例が表示されます。 HUnit、QuickCheck1、およびQuickCheck2へのインタフェースを持ついくつかのパッケージについて言及していますが、QuickCheck2用のパッケージのみがハッキングで利用可能です。パッケージの残りのフレームワークを使用するには、thisの場所からdarcs(VCS)をダウンロードする必要があります。 HUnitインターフェース用に実行するコマンドは、darcs get http://community.haskell.org/~ttuegel/cabal-test-hunit/
です。 .cabalファイルをビルドするには、調整する必要があります。具体的には、とcabal 1.10
に依存します。これを私のバージョン(ghc 4.*
とcabal 1.14
)に変更し、うまく構築しました。
テスト
あなたは陰謀団がそれを実行できるように、テストモジュールにいくつかのものを行う必要が構築されたインターフェースを持っていたら。具体的には、Distribution.TestSuite
とDistribution.TestSuite.HUnit
の両方をインポートする必要があります。その後、あなたはHUnitインタフェースで提供される機能を使用して、陰謀団のテストにごHUnitテストを変換する必要があります。関連するコード行は次のとおりです。
import qualified Distribution.TestSuite as Cabal
import qualified Distribution.TestSuite.HUnit as CabalHUnit
tests = map (\(x,y) -> CabalHUnit.test x y) [("Login tests", loginTests)]
これだけです! cabal configure --enable-tests && cabal build && cabal test
を実行し、ユニットテストが合格(または失敗)していることを確認できます。
detailed-0.9
インターフェースが徒党インストール0.14.0ではなく、detailed-1.0
に含まれていることを明確にする編集
編集。
Dwilsonの答えは良いですが、detailed
は、現在もサポートされていません。 HUnit
とcabal
をexitcode-stdio-1.0
とTest.Framework
を使用して重ねることができます。
これは、出力のすべての成功意志とstdout
にテストを失敗しただけでなく、テストが失敗した場合の構築に失敗。私のgistを参照してください。
- 1. MockMvcResultMatchers.jsonpathを使ってテストを行うには?
- 2. Win32とRubyを使ってキーストロークを自動化するには?
- 3. 自動テスト生成とリアルタイムHIL実行?
- 4. 自動テストをテスト計画と同期させるには
- 5. phpRackをphingと統合して自動テストするには?
- 6. stack/cabalを使って各haskellパッケージを順番に構築するには?
- 7. Erlangで単体テストを行う際のモジュールリロードを自動化するには?
- 8. Clojureを使って単体テストを行うJava
- 9. TinyCCを使ってシンボルを自動的にリンクするには?
- 10. は、自動テスト4.4.6
- 11. 私のプロジェクト(Django)に変更があったときにテストを自動的に実行する方法は?
- 12. xajax(とMooTools?)を使った自動リフレッシュ
- 13. UINavigationBarとUIBarButtonItemを使った自動レイアウト
- 14. ^Cを押して自動テストを実行する方法
- 15. twitterとfacebookにphpを使って自動ポストする?
- 16. PHPを使って自動クリックマクロ
- 17. NUnit.Runnersパッケージとpsakeを使ってNUnitテストを実行するには?
- 18. 自動テストでrspecタグを使用
- 19. シェルスクリプトを使ってdos2unixを自動化するには?
- 20. MailChimpを使ってRailsで自動ニュースレターを送るには?
- 21. セレン自動テストとjavaテキストボックス
- 22. Google App Engineでどのように自動テストを行うのですか?
- 23. CabalでquickCheckテストを使用しますか?
- 24. TFS 2008での自動テストの実行
- 25. Springテストの自動発行の問題
- 26. 自動統合テストとは正確には何ですか?どのようにそれを行いますか?
- 27. Travis CIとGradle自動ビルドカウントを使ってjarファイルをデプロイ
- 28. JavaScript自動テスト
- 29. Pythonで擬似ファイルオブジェクトを使って単体テストを行う方法は?
- 30. iOSモノタッチGUIテストをコマンドラインから自動的に実行する
解決策は、HP 2012.2では機能しません。 '徒党--version'ショー' 0.14.0'それぞれ '1.14.0'が、'徒党のconfigure --enable-tests'はまだ "テストの種類は次のとおりです。終了コード-stdioの-1.0、詳細な-0.9" と言います。だから、公式 '1.14.0'は'詳細な-1.0'ずにまだあります。 – nponeccop
@nponeccop私のソリューションは誤解を招いて申し訳ありません。私はそれをもっと明確に編集しました。明らかにするには、 "detailed-1.0"インターフェースはまだ出ていないので、 "detailed-0.9"インターフェースを使用する必要があります。 1.0インタフェースではなく、0.9インタフェースでなければならないことは、これまでのところ発生していませんが、YMMVです。 – Dwilson
Google検索でここに到着する人には:もっと簡単な解決策は 'detailed'の代わりに' exitcode-stdio-1.0'テストタイプを使うことです。 'exitcode-stdio-1.0'と' HUnit'を組み合わせた実例があります:https://gist.github.com/23Skidoo/8019225 –