問題タブ [htf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
265 参照

testing - カバール、HTF、およびHUnitアサーションの奇妙さ

だから私はHTFを使ってHUnitスタイルのアサーションを実行しようとしています

そして、私が使用するghc --makeと、それは正しく動作しているようです。

しかし、cabalを使用してビルドすると、失敗するはずのすべてのテストが失敗するわけではありません。

何が問題になっていますか?どうすれば修正できますか?

0 投票する
1 に答える
1245 参照

testing - HTFによるテスト

HTFに関する適切なドキュメントが信じられないほど不足しています。私が見つけたのは、次の本当に重要な情報のいずれも提供しないチュートリアルだけでした。

  1. パッケージからすべてのテストを自動的に実行するテストスイートを作成するにはどうすればよいですか?
  2. HTFのこれらの「ブラックボックステスト」とは正確には何ですか。また、どのように作成すればよいですか。
  3. HTF(ソースルート、パッケージとモジュールの構造、カバール)に基づいてテストスイートを設定する実際の基準は何ですか?
0 投票する
1 に答える
446 参照

testing - Haskell Test Framework (HTF) と複数モジュールのテスト定義

HTF には、テスト フレームワークの使用方法を示すサンプル プロジェクトがあります。モジュール MyPkg.A はいくつかのテストを定義し、MyPkg.B はいくつかのテストを定義します。モジュール A と B からテストを集約する (そして新しいテスト自体を定義しない) 新しいモジュール MyPkg.C を作成することは可能ですか?

A と B (テスト ランナーのメイン モジュール) からテストをインポートする代わりに、単一の C モジュールからテストをインポートしたいと考えています。

このように MyPkg.C を実装します

そして、私のメインのテストランナーモジュールは次のようになります:

このコードをコンパイルしようとすると、エラーが発生します。

0 投票する
1 に答える
1067 参照

haskell - Cabal での HTF のインストールに関する問題

HTFをインストールしようとしています。ただし、これcabal install HTFを取得した後:

他のバージョンをインストールしようとしましたが、別の問題が発生しました。たとえばcabal install 'HTF <= 0.1'、次のようになります。

の後の最初の結果と同様の結果も得られますcabal install 'HTF <= 0.9'。試しghc-pkg checkてみると、壊れたパッケージのリストが表示されました。パッケージを再インストールし、HTF のインストールを繰り返し試みましたが、結果は同じでした。

0 投票する
2 に答える
936 参照

testing - Test.QuickCheck:同じタイプの複数のプロパティのテストを高速化

自分のタイプのインスタンスを生成するランダムジェネレーターをテストしています。そのために、私は次のカスタムインスタンスを持っていますArbitrary

これは、生成された値が特定のプロパティを保持していることをテストするためTest.QuickCheckに(実際には)とうまく機能します。Test.Frameworkただし、確認したいプロパティはかなりあります。追加するほど、すべてのプロパティを確認するのに時間がかかります。

毎回新しく生成するのではなく、すべてのプロパティをテストするために同じ生成値を使用する方法はありますか?私は明らかに、失敗時にどのプロパティが保持されなかったかを確認したいので、1つの巨大なプロパティを作成することandは最適ではありません。

0 投票する
3 に答える
139 参照

haskell - HTF は TH によって生成された props をテストしません

ライブラリ内のさまざまなタイプに対して、同様のテストを多数実行したいと考えています。

簡単にするために、クラスを実装する多くのベクター型があり、ライブラリ内のすべての型で機能するNum同じ QuickCheck プロパティ チェックを生成したいとします。prop_absNorm x y = abs x + abs y >= abs (x+y)

TH を使用してそのようなプロパティを生成します。

テストを生成する関数には、次の署名があります。

この関数は、ベクター クラスのすべてのインスタンスVectorMath (n::Nat) t(および同時に のインスタンスNum) を検索し、reify ''VectorMathそれに応じてすべての prop 関数を生成します。 -ddump-splices次のようなものを示しています。

問題は、手動で作成されたプロパティはすべてチェックされますが、生成されたプロパティはチェックされないことです。

注 1: 同じファイルに生成されたプロパティと生成されていないプロパティがあります (つまり、TH 式$(..)は他の props と同じファイルにあります)。

注 2: prop 関数を作成するための型のリストは可変です。後で の他のインスタンスを追加したいVectorMathので、テスト リストに自動的に追加されます。

問題は、HTF(おそらくTHも使用する)が生成されたコードを含むファイルではなく、元のファイルを解析することだと思いますが、なぜこれが起こるのかわかりません。

だから私の質問は: この問題を解決するにはどうすればよいですか? TH で生成された props を使用できない場合、さまざまなタイプで QuickCheck テストを実行できますか (つまり、それらを に代入しますprop_absNorm :: Vector 4 a -> Vector 4 a -> Bool)?

また、別の方法として、TH をさらに使用して手動でテスト エントリを htf_Main に追加することもできますが、これを行う方法はまだわかりません。そして、それはきれいな解決策のようには見えません。

0 投票する
0 に答える
106 参照

haskell - Cabal testsuite - How can I pass a flag?

I use cabal with test-suites. The processor I use (HTF) allows flags (e.g. --quiet). How can I add such flags in the cabal file in order to be passed automatically to the test suite program when it is executed?