noseユニットテストフレームワークと正規表現(?:^|[b_.-])[Tt]estの関係

『エキスパートPythonプログラミング』を読みながら、noseというテストフレームワークを使ってみたところ、さっそく行き詰まってしまった。

P.307
「noseは((?:^|b_.-])[Tt]est)という正規表現にマッチするモジュールの中の、同じ正規表現にマッチするすべてのクラスと関数を実行します」
とあるが、この正規表現だと「bTestHoge」という関数はテストされることになる。
ところが、実際にやってみるとbTestHogeは実行されない。

noseのマニュアルを読んでみたところ、どうやら「((?:^|\b_\.-])[Tt]est)」が正しい正規表現らしい。

つまり、
・行頭がTestまたはtestで始まっている
または、
・単語境界(\b)またはピリオド(.)またはハイフン(-)の次に、Testまたはtestがある
とき、これらのクラスや関数をテストとみなして実行するということだ。

Pythonプログラミング物語 © 2016 Frontier Theme