2009-07-28 6 views
7

私はPerlAppを使って配布するための "バイナリ"形式のアプリケーションを持っています。私のクライアントはWin32システム用の簡単なインストールを望んでいるので、これは非常にうまく動作します。ユニットテストをPARまたはPerlAppでパッケージ化する方法はありますか?

クライアントは、標準インストールのようにすべての単体テストを実行する必要があると判断しました。しかし、彼らはまだ普通のPerlをインストールしません。

私は、私のクライアントのシステムで動作するように単体テストをパッケージ化する方法を必要としています。

私が最初に考えたのは、proveを1つのファイルにまとめて、それぞれのテストを別々にまとめることでした。その後、適切な構造のzipファイルを発送してください。

Test :: Harness :: Strapsがコマンドラインからperlを呼び出したことが少しの調査で示されました。

このプロセスに役立つ既存のツールはありますか?

おそらく、PAR::Packerparlツールを使用して、テストスクリプトの呼び出しを処理することができました。

PARまたはPerlAppのどちらを適用するか、Test :: HarnessやFriendのオーバーライドにどのようにアプローチするかについての考えに興味があります。

ありがとうございました。

更新:私はPARまたはPerlAppに心臓を設定していません。それらは私がよく知っている単なるツールです。別のパッケージャを必要とするアイデアやソリューション(Cava Packagerなど)があれば、それについてお聞きしたいと思います。

更新2:私は近くにいるPARの素晴らしい新機能を指摘しました。新しいTest :: Harnessディストリビューションのどこを見るかについて、いくつかのアイディアや指針を提供できるTAPの専門家はいますか?

答えて

4

PAR(とおそらくはperlapp)がテストスイート全体とCPANモジュールのビルド副産物の過多をパッケージ化するつもりはないと私はおそらく大きなニュースを壊していません。スタンドアロンアプリケーションやバイナリJARのようなモジュールライブラリをパッケージ化することを意図しています。

これは、ppの-aスイッチを使用して、PARアーカイブ(.parライブラリとスタンドアロン.exeの両方)に任意のファイルを追加できるということです。スタンドアロンの実行可能ファイルの場合、実行時に$ ENV {PAR_TEMP}。 "/ inc"に内容が抽出されます。

これで、PARパッケージの実行可能ファイルを再利用してテストハーネスを実行することができます(実行ファイルを "perl"として実行させる)。今、私はそれのための準備ができて解決策を持っていませんが、私は最近、PARパッケージの実行可能ファイルを多かれ少なかれ一般目的のperlインタプリタとして再利用可能にすることに取り組んできました。二つの落とし穴は、私はあなたがそれを使用する方法を説明する前に:

  • アプリケーションは魔法「のperl」と呼ばれ、あなたの$ PATHに自分自身を追加する予定がありません。
  • 一般的なperlとしてのアプリケーションの "再利用"には特殊なオプションが必要で、ではなく、は現在通常のperlオプション(perlrunのもの)をサポートしています。これは、あなたが選んだ外部のperlスクリプトを実行するだけです。

残念なことに、後者の問題は、このアプローチがあなたにとって邪魔になることです。 perlのコマンドラインオプションのサポートは、私が考えてきたことですが、すぐに実装されることはありません。

  • はCPANからPARの最新バージョンをインストールします。

    は、ここでは、「再利用可能なexeファイル」をサポートしてPARを取得する方法のレシピです。

  • PAR :: Packerの最新の開発者版をCPAN(0.992_02または03)からインストールします。
  • ppコマンドラインに " - reusable"オプションを追加してください。
  • 外部スクリプト "foo.pl" を実行するには、次のオプションを使用して実行可能ファイルを実行します。--par-オプションfoo.pl FOO-PL-OPTIONS-HERE

  • --reuse

    ./myappを

残念ながら、 "./myapp --par-options --reuse"がPerlインタプリタであるTest :: Harnessをどのように教えようとしているかは、私が理解できないものです。

+1

私は100%解決策を見つけることはできませんでした。私のニーズは少し奇妙です。しかし、あなたの最近のPARの仕事は、正しい方向への大きな一歩のように聞こえます。私は、サブクラス化やMonkey-Patching Test :: Harnessに関するいくつかの大まかなアイデアを持っています。再利用可能なPARを使って、私はそれをすべて一緒に持っていくことができるかもしれません。ありがとう。 – daotoad

1

Cava Packagerを使用すると、パッケージ化された実行可能ファイルでテストスクリプトをパッケージ化できます。これは主に、配布前にパッケージ化されたコードに対してテストを実行できるようにするためです。ただし、エンドユーザーにテストとテスト機能を配布するオプションもあります。

注:私の名前が示すとおり、私はCava Packagerと提携しています。

関連する問題