haskell-jp / questions #100 at 2022-03-23 00:05:49 +0900

HTFを使ってユニットテストをフィルターする方法等はあるのでしょうか?
イメージ:Rubyのrpecであるような bundle exec rspec -P spec/**/some_spec.rb
https://hackage.haskell.org/package/HTF
Commandline options を見るに、ファイルでのフィルターはなさそうですよね。

PATTERN is a posix regular expression matching the names of the tests to run.
とあるので、テストケース名 (おそらく test_nonEmpty などの関数名) ではフィルターできるのではないでしょうか。RSpec でいう --example-matches オプションのように。
ありがとうございます
試してみます
コマンドラインで実行でき、
かつhtMainWithArgsみたいな関数で内部的にもAPIがあることがわかったのでよかったのですが
-n は否定表現なので --exclude 的なオプションなんですね
--include 的なオプションも欲しかった。こういうのは汎用的なワードでなんと言えばいいのやら。

Goだと -run で`--include` 的なオプションが使えますね
USAGE: COMMAND [OPTION ...] PATTERN ... なので、オプションではない、ただの引数が include 相当ですかね?
コマンド名を知らないので、仮に htf としますが、

• パターンで限定したいとき: htf pattern-to-match
• パターンで除外したいとき: htf --not=pattern-to-exclude
のようになるのではないかと思われます。
なるほど盲点でした、ありがとうございます!
試してみます

ちなみに直接コマンド実行する感じではなく、以下のhtfMainWithArgsを使ってます(既存ソースが複数のテストケースをまとめてhtfMainから実行する形式だったため)

https://hackage.haskell.org/package/HTF-0.15.0.0/docs/Test-Framework.html
htfMainWithArgs[String] をとるようなので htfMainWithArgs ["pattern-to-match"]htfMainWithArgs ["--not=pattern-to-exclude"] のようになるのでしょうか。しっかり追えていなくて予想で申し訳ないですが…