私はカバールとの間で、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. testlinkとhudsonを使ってpythonテストを自動化
- 2. は、私は、Web自動テストを行うにはゲブ+スポックを使用しようとしていますが、それは私に言って続けてspock.lang.Specification
- 3. Simulink Testでテストハーネスを使用してテスト自動化を行う方法は?
- 4. Appium/Seleniumを使ってOpera Miniテストを自動化する
- 5. sasを使ってHausmanテストを行うには?
- 6. MockMvcResultMatchers.jsonpathを使ってテストを行うには?
- 7. gebとgroovyを使ったテストの自動化
- 8. 自動テスト生成とリアルタイムHIL実行?
- 9. Win32とRubyを使ってキーストロークを自動化するには?
- 10. リポジトリレベルで `git pull`を使って` submodule update`を自動的に行う方法
- 11. エスプレッソを使用して、アンドロイド内の特定のセルのテーブルビューとスクロールの自動テストを行う方法は?
- 12. 自動テストをテスト計画と同期させるには
- 13. stack/cabalを使って各haskellパッケージを順番に構築するには?
- 14. ポストグルを使ってローカルとビルドサーバーで単体テストを行う方法は?
- 15. phpRackをphingと統合して自動テストするには?
- 16. Erlangで単体テストを行う際のモジュールリロードを自動化するには?
- 17. PHPの行でjQueryベースを使って自動的に計算するには?
- 18. は、自動テスト4.4.6
- 19. CabalでquickCheckテストを使用しますか?
- 20. 統合テスト:Rails_Adminでの自動補完ドロップダウンをCapybaraを使って
- 21. Antを使ってJUnit 5 @Tagテストを実行するには?
- 22. Clojureを使って単体テストを行うJava
- 23. TinyCCを使ってシンボルを自動的にリンクするには?
- 24. 私のプロジェクト(Django)に変更があったときにテストを自動的に実行する方法は?
- 25. UINavigationBarとUIBarButtonItemを使った自動レイアウト
- 26. xajax(とMooTools?)を使った自動リフレッシュ
- 27. 自動UIテストの使い方は?
- 28. jquery-ajaxとphp-curlを使って自動記入を試行する
- 29. bxsliderを使ってビデオを自動再生しようとしています
- 30. ^Cを押して自動テストを実行する方法
解決策は、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 –