問題タブ [perl-prove]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - Perl 単体テストでサブプロセスを fork すると、prove が停止します。Test::ハーネスの終了
Perl ユーティリティ/モジュール「証明」をいくつかの単体テストのテスト ハーネスとして使用しようとしています。単体テストは、テストの一部としていくつかのバックグラウンド プロセスをフォークする必要があるため、「単体」というよりも「システム」に近いものです。以下を使用して...
ただし、何らかの理由で、.t ファイルにいくつかの余分なプロセスをスピンアップさせると、すべてのテストが終了した後、次のファイルに進むか終了するのではなく、最初の .t ファイルの最後でテスト ハーネスがハングします。 1つしかない場合。
最初は、サブプロセスを強制終了し、機能しないままにしていたためではないかと思いました。だから私は追加しました..
コードに。しかし、それは役に立ちません。実際、閉じた検査では、私の perl テスト ファイルが終了し、現在は機能していないプロセスであり、その子を取得していない証明ラッパー スクリプトであることが判明しました。実際、テストスクリプトの最後に die() 呼び出しを追加すると...
私のスクリプトは終了しましたが、何らかの理由でハーネスが解けません。
テストが失敗し、ハーネスが正常に終了したときにサブプロセスを無効にしたときのように、それを混乱させているのは間違いなく私のサブプロセスであることを確認しました.
何らかの方法でハーネスを混乱させる可能性のあるプロセスを開始する方法に間違っていることはありますか?
perl - 証明を使用して異なるサーバーで同じテストを実行する方法は?
Perlproveテスト ユーティリティ (TAP::Harness) を使用してプログラムをテストしています。
最初にローカル コンピューターで同じテストを実行し、次にリモート コンピューターで実行する必要があります。
(テスト プログラムは、それぞれ localhost またはリモート ホストに接続する必要があります)
証明を使用してテストにパラメーター (test_server) を渡すにはどうすればよいですか? 環境を使用する必要がありますか、それともより良い解決策がありますか?
perl - 改行なしで stdout に書き込むと、テストが失敗する
proveユーティリティを使用して perl テストを実行すると、テスト対象のメソッドにprint改行で終了していないステートメントが含まれていると失敗します。
これにより、
改行を追加するとprint "A\n";、テストに合格します。
perl mytest.t(テストを使用するのではなく、単にテストを実行すると、proveどちらの方法でも合格することに注意してください)。
これが考えられる理由と、それを回避する方法はありますか?
perl - arisdottleの後にproveコマンドが引数を渡さない
コマンドを使用して、いくつかのパラメーターをテスト スクリプトに渡そうとしていますprove。オプションがハッシュ化されたいくつかの古いスレッドと、manオプションの前に :: を使用する私の証明のページ (以下に引用) の内容に基づいて、証明はまだテストスクリプトのオプションを独自のものとして解析しています:
$
prove -v t/040-unit-object-test.t :: --unit 270149Unknown option: unit
マニュアルページの関連部分は次のとおりです。
sudoオプションをルートとして実行しようとしましたが、同じエラーが発生しました。
Getopt::Long モジュールを使用してオプションを取得しています。プレーンな old を使用してテスト スクリプトを実行すると、オプションが機能しますperlが、SKIP および TODO ブロックが機能しません。
回避策を使用する必要はありません--exec。
Mac OS 10.6 で Perl 5.10 を実行しています。
の出力prove -Vは次のとおりです。
prove v2.64, using Test::Harness v3.25 and Perl v5.10.0
perl - Perlのproverユーティリティに特定のテストを無視するように指示するにはどうすればよいですか?
現在、私は次proveのように実行しています。
正規表現を使用してファイルを除外する方法はありますか?perldoc proveのまたはの出力を見ることができませんでしprove -Hた。
perl - perl xt テストを実行するには?
最近、新しい素晴らしいものが Perl の世界に登場しました。ライブラリ パッケージには長い間、tテストを含むフォルダーがありました。xtこれで、作成者テストを含むフォルダーがもう 1 つできました。ライブラリのxtインストールの過程でテストは必要ありませんが、ライブラリの自動作成者がコードが優れていることを確認するのに役立ちます。
proveテストを実行する Perl に同梱されているスクリプトがあります。パラメータなしで実行
proveすると、フォルダ「t」のすべてのテストが実行されます。両方を実行してテストしたい場合tは、xt次のように記述します。
.proverc構成ファイルfile にパラメータ ( )を追加することができますxt t。次に、パラメーターなしで実行するproveと、ファイルから取得され、両方のフォルダー内のテストが実行されます。
しかし、ここで問題が発生します。ファイルにある場合はxt t、.provercファイル名をパラメータとしてprove. prove t/00-load.t構成ファイルからパラメーターを取得するため、両方のフォルダーですべてのテストを実行すると言う場合
。書く必要がありますprove --norc
t/00-load.t。しかし、これは醜いようです。
xtどのようにテスト を実行しますか?
perl - perlは、「アーカイブは既知のフォーマットタイプではありません」というエラーを証明します
Perl の証明を実行しようとすると、証明を実行できず、次のエラーが発生します。
エラー:
使用したバージョン: TAP::Harness v3.28 および Perl v5.8.8、OS = CentOs 6.4
perl - --debug オプションを指定して perl の証明を実行できない
-d オプションで証明を実行しようとしましたが、エラーが発生しました:
現在、'man probe' は利用可能な -d スイッチを表示しませんが、http://perldoc.perl.org/5.8.8/prove.html
--debug が明確に表示されます
それはドキュメントのエラーですか、それとも証明の問題ですか? -debug を証明とともに使用できる方法はありますか? 私は使っている:
performance - Perlのproveコマンドで出力される統計情報(usr、sys、cusr、csys、CPU)は何を意味していますか?
私はかなりのグーグルをしましたが、この質問に対する答えが見つかりません。テスト ( http://perldoc.perl.org/prove.html ) で証明を実行すると、次のような統計が得られます。
usr、sys、cusr、csys、CPU の数値は何を意味していますか?