2017-09-07 20 views
1

Hspecに渡すオプションについては、hspec documentationに従っています。私のオプションを指定すると、コマンドラインから渡されたときに正常に機能しますが、.hspecファイルまたは他のリストされたメソッドから渡されたときは機能しません。hspecテストの引数はコマンドラインでは動作しますが、.hspecファイルでは動作しません

私のテストスイート内のテストの1つは、フィルタ "post_returns_200"と一致します。私は、リンクされhspecのドキュメントは、私はなく、コマンドラインからだけではなく、このフィルタを指定することができなければならないことを示して

stack test --test-arguments=--match="post_returns_200" 

コマンド経由スイートの残りの部分を実行せずに一人でこのテストを実行することができます。.hspecからファイル、ghci、または環境変数から取得できます。しかし、他の方法のいずれかでフィルタを指定するためのドキュメントに従うと、「認識できないオプション」エラーが発生します。私は

$ echo --match="post_returns_200">>.hspec 

経由.hspecファイルでオプションを指定した場合たとえば、その後、stack testを実行すると、次の

$ stack test 
azara-api-0.1.0.0: test (suite: azara-test) 

azara-test: unrecognized option `--match="post_returns_200"' in config file /home/matthew/backup/azara_work/platform/api/.hspec 

Test suite failure for package azara-api-0.1.0.0 
    azara-test: exited with: ExitFailure 1 
Logs printed to console 

私は、環境変数を介して、またはGHCiの中からオプションを指定しようとすると、Iを返します。同様のエラーが発生する。私はコマンドを指定する方法に多くのバリエーションを試しました。引用の有無にかかわらず、「--test-arguments=」の有無にかかわらず、この時点で私は完全に困惑しています。コマンドラインで指定したときにオプションが正しく動作するが、他の方法では認識されない理由についての提案はありますか?

+0

単純に '$ echo --match = post_returns_200> .hspec'でしたか? '--match =" post_returns_200 "行が残っているので、ファイルを追加するのではなく、'> 'を使ってファイルを上書きします。 –

+0

@ M.Aroosiはい、これを試みて同じエラーが発生します。同様に、 '.hspec'ファイルには' --match = post_returns_200'という単一行だけのエラーがあります。 – mherzl

答えて

1

私は無視する何らかの理由で、hspecはコマンドラインと設定ファイルで異なるオプションセットを認識します。

今のところ、--matchをhspecに渡す唯一の方法は、明示的なコマンドライン引数(--test-arguments経由)です。 (現在のアクティブな枝に多くのことを変更しましたが、それはまだあなたがどちらか欲しいものはできません)2.4.4のソースコードから


関連する問題