問題タブ [modulino]
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 modulino の「package」キーワードがテストを壊すのはなぜですか?
次のような単純な Perl スクリプト testme.pl があるとします。
そして、テストファイル testme.t は次のようになります:
実行は期待どおりに動作しているようですが、 http://www.perlmonks.org/bare/?node_id=537361とhttps://stackoverflow.com/a/9134624/272387perl testme.t
の両方がパッケージ行を追加することを提案しているので、元のスクリプトは次のとおりです。
テストは次のように失敗します。
なんでそうなの?
perl - @_ に Modulino パッケージ名を追加
次の基本的な Perl モジュリーノを考えてみましょう:
コマンドラインで実行すると、次のようになります。
テストから呼び出す場合:
つまり、run() 内の @_ の内容は、関数の呼び出し方法によって変わります。
何が起こっているのか説明できますか?
raku - ファイルが必要な場合、Perl 6 は MAIN を実行する必要がありますか?
以下は、 MAINサブルーチンを宣言する短い Perl 6 プログラムです。プログラムを直接実行した場合にのみ出力が表示されます。
プログラムを直接実行すると、出力が表示されます。
モジュールとしてロードすると、出力が表示されません。
use
プログラム内からの場合も同じですが、出力が表示されません。
しかし、 を使用するrequire
と、次の出力が得られます。
Synopsis 06は文字通り、コンパイル単位が必須ではなく直接呼び出されたことを示しています。実行時に動作するため、何か他のことが起こっていますかrequire
(S06 はそれを除外しませんが)?
Rakudo Star 2016.07 と 2016.10 で同じ動作をします。
perl - 単一の Perl 単体テスト サブルーチンをデバッグするにはどうすればよいですか?
通常の MakeMaker モジュールとt/
tests ディレクトリがあり、たとえばprove -I lib t/my-test.t
.
私のテストでは、次のように (Effective Perl の modulino 手法を使用して) Test::Class
andと subs を使用します。Test::More
ここで、Perl デバッガーを使用して、モジュールの問題を示すテスト サブルーチンを調査したいと考えています。ファイルtest_something
内の他のすべてのテストサブルーチンを実行せずに、デバッガーでのみ実行したい。.t
prove
そのようなオプションはないようです。
perl -d -I lib t/my-test.t
modulino を変更して setup メソッドを呼び出してから、代わりに実際のテスト メソッドを呼び出す場合を除き、すべてのテストを実行します__PACKAGE__->runtests()
。
コードを変更せずにテスト サブルーチンを 1 つだけ実行するにはどうすればよいですか?