Perlではすべてのテストをtディレクトリに貼り付けることが習慣になっています。単体テストを機能的なものからどのように分離しますか?あるいは、質問をより簡単でより明白にするために、実行しないテストと実行しないテストとを迅速に分離するにはどうすればよいですか?すべてのテストが一緒に実行されると、テストは日常的に開発に使用されるには時間がかかりすぎてしまいます。さまざまな種類のPerlテストを分離することで、それらをすべて実行する必要はありませんか?
私はQUICK_TEST
のようないくつかの環境変数を設定し、その値に応じて長いテストをスキップできると考えました。ユニットテストと機能テストを分けていますか?どうやって? (これは、世論調査であることを意図するものではない - 私はおそらくいくつかの慣用的な解決策があると思った。)
更新:これまでのところ、私はこれに来ています
package Test::Slow;
use strict;
use Test::More;
BEGIN {
plan(skip_all => 'Slow test.') if $ENV{QUICK_TEST};
}
1;
、近くに.t
ファイル:
# This is a slow test not meant
# to run frequently.
use Test::Slow;
use Test::More;
うまくいくようです。
P.S. CPANでTest::Slowとして入手可能です。
「通常」かどうかわかりません。環境変数の使用、ディレクトリの分離、モジュール(Test :: Pod :: Coverageなど)がインストールされていない場合はテストをスキップし、ハードコードされたユーザー名またはディレクトリのチェックさえも確認しました。モジュール上で作業している著者以外の誰もがこれらをすべて、ある程度、または障害物として見ており、人々は気にしないことを望みます。作成者のみのテストでは、実行するのに費用がかかることはほとんどありません。 – ysth