Skip to content

Instantly share code, notes, and snippets.

@MiyamonY
Created June 15, 2014 23:07
Show Gist options
  • Save MiyamonY/62a9b933631d2f81def6 to your computer and use it in GitHub Desktop.
Save MiyamonY/62a9b933631d2f81def6 to your computer and use it in GitHub Desktop.
python-nose

nose(Python unittestフレームワーク) tips

nose

  • `nosetests` コマンドでカレントディレクトリ以下のテストファイル中のテストを実 行する。
  • ファイル名はtestで始まる必要があり、クラス名、関数名も同様。

rednose

  • pip経由でrednoseをインストールする事で単体テスト結果出力に色を付けることが できる。
  • rednoseを有効にするためには、 `nosetests` にオプション `–rednose` を付けるか、 環境変数 `NOSE_REDNOSE` に1をセットする。

coverage

  • pip経由でcoverageをインストールする事でカバレッジ計測が可能になる。
    • テストケースが実行されていなかった事があるのでカバレッジ計測は常に行う事。
  • rednose同様、coverageを有効にするためにはオプション `–with-coverage` を付け るか、環境変数 `NOSE_WITH_COVERAGE` を1にセットする。
  • モジュールabcによりアブストラクトメソッドを定義した場合、カバレッジは低下す る(アブストラクトメソッドは実行されないので)。
    • stackoverflow によれば、アブストラクトメソッドは組み込み例外 `NotImplementedError` を発生するようにして、プロジェクトディレクトリ中に `.coveragerc` ファイルを作成する。そして、以下のような記載を行えばよい。
      [report]
      exclude_lines =
          # Have to re-enable the standard pragma
          pragma: no cover
      
          # Don't complain if tests don't hit defensive assertion code:
          raise NotImplementedError
              
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment