Help us understand the problem. What is going on with this article?

pythonのユニットテスト用ライブラリNoseのオプション紹介-19種類-

pythonのユニットテストツールNoseのnosetestsコマンドのオプション一覧です。
一覧といいつつ途中で力尽きたので私の独断ですがよく使う順に上から並んでます。
基本的な使い方とかはのせてません。

1. 全てのテストを実行(何もつけないで実行)

noseの命名規則と一致するファイル・テストケースを全て実施

nosetests

2. 特定のファイル内のテストを実行(テストファイルへのパスをつけて実行)

nosetests test_settings.py

3. 特定のテストケースのみ実行(FILEPATH:ClassName.methodName)

nosetests test_settings.py # 特定のファイル内のテストを実行
nosetests test_settings.py:SettingsApiTestCase # 特定のファイル内の特定のクラス内のテストを実行
nosetests test_settings.py:SettingsApiTestCase.test_get_settings # 特定のファイル内の特定のクラス内の特定のメソッドのテストを実行

4. 前回実行で失敗したテストを実行(--failed)

nosetests --failed

5. 複数プロセスで並列実行(--processes=NUM)

起動プロセス数を指定。

nosetests --processes=4

6. テスト実行プロセスのタイムアウト(--process-timeout=SECONDS)

デフォルトは10秒

nosetests --process-timeout=10

7. stdoutを出力させる(-s, --nocapture)

下の例であればtest_settings.pyの中にprint()を仕込んであればその内容が出力される

nosetests test_settings.py -s

8. テスト結果表示を詳細にする (-v、--verbosity=VERBOSITY)

nosetests sample_test.py -v
nosetests sample_test.py --verbosity=2

※ -vと--verbosity=2は同じ、verbosityを大きくするほど詳しくなる

9. テスト結果表示を簡単にする(-q)

nosetests test_settings.py -q

10. テストを実行しないでテストケース名のみ収集する(--collect-only)

-vオプションと一緒に使いテストケース名をすべて出力させたりする。

nosetests --collect-only -v

11. working directoryの指定(-w)

下の例の場合./tests/の下のtest_settings.pyを実行するようになる。

nosetests test_settings.py -w ./tests/

12. configファイルの指定(-c)

home directoryの.nosercかnose.cfgをデフォルトで読み込む。これを指定する場合のオプション。何も読み込まないようにするにはexport NOSE_IGNORE_CONFIG_FILES=1

nosetests test_settings.py -c ./config.ini

13. 特定のファイル内のテストを実行その2 (--tests)

カンマ区切りで複数のテストファイルを指定する

nosetests --tests=test_settings.py,test_login.py
nosetests test_settings.py test_login.py # これでも同じ

14. 正規表現にマッチするファイルを実行(-m REGEX, --match=REGEX, --testmatch=REGEX)

デフォルトでは((?:^|\b_\.-])[Tt]est)が指定されているためtest等で始まるファイルを実行する。下の例であればtest_settings.pyは実行される。

nosetests -m .*setting.*

15. 正規表現でテストファイルを除外(-I REGEX, --ignore-files=REGEX)

下の例ならtest_settings.pyは実行されない

nosetests -I .*setting.*

16. 正規表現でテストケースを除外(-e REGEX, --exclude=REGEX)

以下の例ならテストケースtest_get_settings1はスキップされtest_get_settings2は実行される

nosetests -e .*settings1.*

17. 追加で実行するテストファイル名を正規表現で指定(-i REGEX, --include=REGEX)

下の例だと-m aaaaaaaaaaaaa.pyをしているのでaaaaaaaaaaaaa.pyと完全一致する物しか実行されないところ、-i .*setting.*を指定しているのでtest_settings.pyが実行されます

nosetests -m aaaaaaaaaaaaa.py -i .*setting.*

18. 失敗するまでテスト実行・失敗したらテスト停止(-x, --stop )

nosetests -x

19. テストのスキップを無効化する(--no-skip)

@unittest.skip("skipping this one")等をつけるとテストケースがスキップされるがこれをスキップされなくするオプションだと思うのだが、実行するとスキップ自体はされてテスト結果の表示の時にOK (SKIP=1)OKとなるだけのよう???

nosetests test_settings.py --no-skip
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした