2017-04-19 11 views
0

Perlテストファイルでテストケースを1つだけ実行できるかどうかを調べようとしています。例えば、(http://www.thegeekstuff.com/2013/02/perl-test-simple/からコピーされた)次のPerlのテストファイルを考える:Perlテストファイルで名前付きテストケースを1つだけ実行する

#!/usr/bin/perl 

use strict; 
use warnings; 

use Test::Simple tests => 2; 

sub hello_world 
{ 
return "Hello world!"; 
} 

sub get_number 
{ 
return int(rand(1000)); 
} 
ok(hello_world() eq "Hello world!", "My Testcase 1"); 
ok(get_number() > 0, "My Testcase 2"); 

私はコマンドprove -v test.tを使用してこのファイルを実行すると、私は出力を以下の取得:

test.t .. 
1..2 
ok 1 - My Testcase 1 
ok 2 - My Testcase 2 
ok 

、私は実行したいです2番目のテストケース、すなわちMy Testcase2。テストファイルに名前付きのテストケースを1つだけ実行する方法はありますか?

+0

「My Testcase 1」を削除してみませんか? – toolic

+0

'Test :: More'には、テストをスキップするための仕組みがあります:http://perldoc.perl.org/Test/More.html#Conditional-tests – toolic

+0

(おそらくコマンドライン引数を介して)テストをスキップする方法はありますか?テストスクリプトを変更しますか? – user2888308

答えて

5

短い答えは:いいえ、Test::Simple(またはTest::More)が提供する簡単なテストフレームワークとproveコマンドを使用して、テスト・スクリプトからの一つの特定のアサーションを選び出すと、ちょうどその主張を実行する方法はありません。

しかし、Perlテストエコシステムには豊富で多様なオプションが用意されています。たとえば、Test::Classでは、標準テストプロトコルの上にオブジェクト指向のレイヤーを追加できます。これにより、テストをメソッドにグループ化し、設定とティアダウンのメソッドを追加し、run individual test methodsに追加することができます。テストスクリプトを修正することなくコマンドラインからすべてを行うことはできませんが、それはあなたが求めているものに一歩近づきます。

もちろん、はるかに簡単な解決方法は、あなたが望むビットだけを自分自身の.tファイルにコピーして実行することです。

関連する問題