誰かがPerlのための良い自動化されたテストスイートフレームワークを提案することができますか?問題は、我々はすべて手動でテストファイルを実行する必要があるPerl用の優れた自動テストスイートはありますか?
答えて
これは本当にあなたがやろうとしていることによりますが、ここではその多くの背景について説明します。
まず、あなたは一般的にテストを使用してテストプログラムを書きます::詳細やテスト::コアテストプログラムとしてシンプル:内部
use Test::More tests => 2;
is 3, 3, 'basic equality should work';
ok !0, '... and zero should be false';
、テスト:: Builderがこれらのテスト結果として出力すると呼ばれていますTAP(Test Anything Protocol)。 Test :: Harness(TAP :: Harnessの周りの薄いラッパー)は、TAPを読み取り、解釈し、テストが合格したか失敗したかを伝えます。上記の "prove"ツールはTest :: Harnessにバンドルされていますので、これを "/数字"としてt /ディレクトリ(標準のPerlテストディレクトリ)に保存しましょう。
prove --verbose -r t/
(--verbose:(あなたがサブディレクトリに降りたいと仮定すると、再帰的に)
prove --verbose t/numbers.t
またはそのディレクトリ内のすべてのテストを実行します。t」、あなたは、このコマンドでそれを実行することができますもちろん、)はオプションです。
側の注意点として、多くの人々がそれをお勧めします。TestUnitを使用していないが、それは長い時間前に放棄された、近代的なテストツールと統合されていません。
Iテストのために行くだろう::もっと、または一般的には、今のところTAP
を出力何も、私たちがテストを使用して::よりますが、現在テスト用。私が探しているのは、インクリメンタルテスト/ビルドチェックなどを行うことができる、より自動化されたフレームワークです。
Test :: Moreのラッパーは理想的ですが、
私はPerlUnitを使ってそれが役立つかどうか確認しています。
私が正しくあなたを理解していれば、あなたがExtUtils::MakeMakerやModule::Buildを使用している場合、あなたは、「テストの構築」「テストをする」またはコマンドを入力することにより、自動的にすべてのテストを実行することができますTAP::Harness
を探している、これはプロジェクトのt /サブフォルダ内の* .tファイルを実行します。
これらのいずれも使用していない場合は、TAP::Harnessを使用して複数のテストスクリプトの実行を自動化できます。
実際にテストを書くには、Test::Moreまたは他の人がここで示唆しているモジュールを使用してください。
「Prove」ユーティリティ(App :: Prove)には気づきましたか?特定のディレクトリ内のすべてのテストを再帰的に実行するように指示することができます。
個人的には、Test :: Most、その基本的なテスト:: Moreを追加しました。
限り、あなたは、あなたが、これは有用であることを見つけるかもしれないTAP(テスト何プロトコル)出力を生成するテストを使用しているよう:http://sourceforge.net/projects/smolder
は、自動テストのためのツールの多くを持っている、CPAN Testersをチェックしてください。そのほとんどはCPAN上にある必要がありますので、あなたのニーズに合わせて修正することができます。 TAP :: Harnessを使用して独自のテスターを作成することも非常に簡単です。
あなたは正確に何をする必要がありますか、それをあなたのプロセスにどのように適合させようとしていますか?
我々はあなたが確かに立証使用することにしたい
をテストするために、手動ですべてのテストファイル を実行する必要があります(あなたのテストを実行します)、および/またはモジュール::ビルドは(あなたのコードを構築してから使用してテストが実行されます
perlでの自動テストではTest::Harness(prove
ツールが含まれています)を参照してください。
prove
ツールには、次のコマンドを実行することができます。includeパスにlib
を加えながら
prove -r -Ilib t
これは、テストに「T /」ディレクトリ内のすべての* .Tファイルをrecursivlyます。結果を収集し、テストの実行を制御するの面倒を
-lは-Ilibの省略形です – Schwern
選択のテストスイートフレームワークはTest::Harnessある、など
様々なモジュールを見つけることができる最も一般的なもののテストの特定の種類を提供するために存在しますTest::SimpleとTest::More(どちらもTest-Simpleディストリビューションに含まれています)。 CPANのTestネームスペース全体は、特殊なユニットテストモジュール専用です。その大部分は、Test :: Harnessで動作するように設計されています。
通常、テストはプロジェクトのt /ディレクトリに保存され、各テストファイルにはファイル拡張子.tが使用されます。テストは一般的に
prove t/*.t
を介して実行されます。モジュール配布には、通常、インストール前にテストスイートを実行する「test」という名前のmakeターゲットが含まれています。デフォルトでは、CPANのインストールプロセスでは、モジュールをインストールする前にビルド後にテストをパスする必要があります。
あなたはsmolderを見ましたか?
"Smoke Test"テストの任意のプロトコルを使用して煙/回帰テストをアップロード(自動化または手動)したり、電子メールまたはAtomフィードを使用して詳細や傾向をグラフ化して表示するアグリゲータです。
これはいいですが、SmolderはTAPアーカイブを正しく解析していないようです。 –
あなたは言った:
あなたは後にしているものをまだ完全にわからないが、「私は何を探していますが、増分テストを行うことができますの/ etcチェックを構築する自動化フレームワークの詳細です」
を。他の人が触れたように、Test :: Harness/TAPに基づいているものを見たいと思っています。 Perlのテストコミュニティの大多数はそのフレームワークを使用しています。そのため、これを使用することで、より多くのサポート(および既存の有用なコード)が得られます。
「インクリメンタルテスト/ビルドチェック」の意味について少しお話できますか?
特定の状況で特定のテストセットしか実行しないように、テストをグループに分割したいと思っていますか?
これを行うにはいくつかの方法があります。
core/ database.t infrastructure.t style/ percritic.t ui/ something.t something-else.tなどなど...あなたは、コマンドラインにそれらのすべてを実行するためのツールを「証明」を使用することができます:あなたはのようなものを持っているので、あなたのテストのディレクトリを分割 - 最も簡単なのは、単にファイルシステムを使用することですまたは特定のディレクトリのみなど
proveには、どのテストが実行され、どの順番で実行されるかを選択できる便利なオプションが多数あります(例えば、最も最近失敗した注文など)。これだけでは、おそらくあなたが必要とするものに向かってあなたを連れてくるでしょう。
(最近のバージョンには、はるかに多くの機能がありますが、最近のバージョンのTest :: Simple/prove/etcをCPANから入手することが重要です)。
OOの考え方や、以前のxUnitフレームワークの経験がある方は、TAP/Testの上にビルドされたPerl xUnitフレームワークであるTest :: Classを見てみるとよいでしょう。ハーネス層。私はそれがPerlUnitよりもかなり多くの方だと思う - しかし、私は私がテスト::クラスhttp://delicious.com/tag/Test::Class
にいくつかの詳細はおいしい
チェックアウト:-)それを書いたので、これはあなたのものではない場合と言うでしょう後で - あなたが望む機能についてもう少し詳しく説明できますか?
乾杯、
エイドリアン
- 1. Perlでコーディング標準を適用するための優れた自動フレームワークはありますか?
- 2. PerlのExpectの自動実装はありますか?
- 3. ウェブサイト用の優れたパフォーマンスプロファイリングツールはありますか? (フロントエンド)
- 4. Java用の優れた3Dソフトウェアレンダラはありますか?
- 5. PHP用の無料で優れたラインレベルプロファイラはありますか?
- 6. アスタリスクマネージャインターフェイス用の優れたC#ラッパーはありますか?
- 7. Mac用の優れたインスタントメッセージAPIはありますか?
- 8. Djangoのフラットページより優れたものはありますか?
- 9. OSXのNavicatより優れたものはありますか?
- 10. Eclipse用の優れた継続的テストプラグインがありますか?
- 11. Python 3.4用の優れたシートモジュールがありますか?
- 12. HTML/JavaScriptキャンバス要素用のテストスイートはありますか?
- 13. ID3メタデータ用のPerlまたはPythonライブラリはありますか?
- 14. 自動化されたテストデータジェネレータの利点はありますか?
- 15. jdbより優れたJava CLIデバッガツールはありますか?
- 16. SQLストアドプロシージャより優れたアプローチはありますか?
- 17. CSSスプライトより優れたソリューションはありますか?
- 18. Libgdxよりも優れた2Dゲームエンジンはありますか?
- 19. SQL Server管理タスクを自動化する優れたツールはありますか?
- 20. 優れたルビーテストのトレーサビリティソリューションはありますか?
- 21. 150カントリーレコーディング以上の優れた方法はありますか?
- 22. JavaScriptにsetTimeoutより優れたものがありますか?
- 23. VBScriptをサポートするWebインターフェイス用の優れたテストツールはありますか?
- 24. Windows用の優れた(機能的な)ニューラルネットワークシミュレータはありますか?
- 25. Java/Scala用の優れたGnuPG暗号化ライブラリはありますか?
- 26. 優れたExpression Blendチュートリアルはありますか?
- 27. グラフィックスに優れたPythonモジュールはありますか?
- 28. Python用の自動修正/自動補完ライブラリはありますか?
- 29. -moz-border-radiusよりも優れたソリューションがありますか?
- 30. バンドルリポジトリよりも優れたPythonバンドルがありますか?
PerlUnitを使用しないでください。それは放棄されました。 xUnitスタイルのフレームワークが必要な場合は、Test::Classを参照してください。これは積極的に維持され、Perlの標準的なテストフレームワークと統合されています。 – Ovid