2013-08-05 11 views
6

pythonのnosetestフレームワークには、組み込み/除外とマッチングが可能なテスト用の正規表現を含める、除外して一致させるコマンドラインオプションがあります。ノースフレームワークのコマンドラインの正規表現パターンの一致(-e、-m、-i)

しかし、正しく動作していないようです。

[[email protected]_redhat test]$ nosetests -w cases/ -s -v -m='_size' 
---------------------------------------------------------------------- 
Ran 0 tests in 0.001s 
OK 
[[email protected]_redhat test]$ grep '_size' cases/test_case_4.py 
    def test_fn_size_sha(self): 

ノーズフレームワークの正規表現にはいくつか問題がありますか?

答えて

10

Nosetests' -m引数は、ディレクトリ、ファイル名、クラス、および機能を一致させるために使用されます。 (See the nose docs explanation of this parameter)あなたのケースでは、テストファイルのファイル名(test_case_4.py)が-mマッチ式(_size)と一致しないので、絶対に開きません。

あなたは、あなたのテストファイルを開くには、それを鼻を強制した場合実行のみ指定されたテストということに気づくことがあります。私はテストの特定のテストまたはサブセットを一致させたいとき、私は、一般的には

nosetests -sv -m='_size' cases/test_case_4.py 

は、 --attrib pluginを使用します。これはデフォルトのnose installで利用できます。パターンに合ったテストを除外することもできます。

$ nosetests -w cases/ -s -v -m '_size' 

や '=' 続けると--matchを綴る:

+0

こんにちは@dbw、返信いただきありがとうございます。しかし、私はこれを試してみました、これは私が '[K @電子テスト]の$はgrep '_size' 例/ test_case_04_inv_validation.py デフtest_fn_size_sha(自己)見つけたものです: [k個の@電子テスト] $ nosetests -sv -m = '_size' cases/test_case_04_inv_validation.py 0.000sでのRan 0のテスト OK' – kbang

+0

TestCaseクラスのtest_fn_size_sha()ですか?そうであれば、そのクラスは同じマッチルールの対象となるため、-m式と一致しなければ拒否されます。 – dbn

1

ノーズは、Pythonのre.match、またはこれと同等のものを使用している可能性が高く、文字列の先頭に一致する必要があります。関数名test_fn_size_shaが正規表現_sizeで始まらないため、_sizeは一致しません。

は最初からマッチする正規表現を使用してみてください:

nosetests -w cases/ -s -v -m='\w+_size' 
+0

.formatingがここに吸います。 – kbang

+0

こんにちは..それは良い考え@voithos。しかし [キラン@テストmy_redhat] $ nosetests -w例/ -s -v -m = '\ +の_size W' 蘭[テストmy_redhatキラン@] OK 0.001s で0テスト$ nosetests - ケースW/-s -v -m = '_サイズ' が0.001s OK [キラン@試験my_redhat] $のはgrepの_sizeケース/ test_case_size.py DEF _size_sha(自己)に0テストを実施しました。基本的に ' – kbang

+0

...それは仕事をしなかった – kbang

2

は、正規表現を指定するときに '=' 削除してください

$ nosetests -w cases/ -s -v --match='_size' 
関連する問題