3

通常の MakeMaker モジュールとt/tests ディレクトリがあり、たとえばprove -I lib t/my-test.t.

私のテストでは、次のように (Effective Perl の modulino 手法を使用して) Test::Classandと subs を使用します。Test::More

use strict;
use warnings;
use base 'Test::Class';  
use Test::More;

__PACKAGE__->runtests() unless caller;

sub set_up : Test(setup) {
    # ...
} 

sub test_something : Test {
    is(MyModule::some_sub(1), 1);
}

# ...more test subs...

ここで、Perl デバッガーを使用して、モジュールの問題を示すテスト サブルーチンを調査したいと考えています。ファイルtest_something内の他のすべてのテストサブルーチンを実行せずに、デバッガーでのみ実行したい。.t

proveそのようなオプションはないようです。

perl -d -I lib t/my-test.tmodulino を変更して setup メソッドを呼び出してから、代わりに実際のテスト メソッドを呼び出す場合を除き、すべてのテストを実行します__PACKAGE__->runtests()

unless (caller) { 
    set_up(); 
    test_something();  
    done_testing();  
}

コードを変更せずにテスト サブルーチンを 1 つだけ実行するにはどうすればよいですか?

4

1 に答える 1

8

すべてのテストを実行しcallerないようにするには、テスト スクリプトをロードするときに を定義する必要があります。次のようなことを試してください:

$ perl -Ilib -de 1
DB<1>   do 't/my-test.t'
DB<2>   set_up()
DB<3>   b test_something_else
DB<4>   test_something_else()
    ... step through test_something_else() function ...
DB<16>   done_testing()
于 2016-12-19T22:11:56.497 に答える