Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Nose鼻をきかせてテストせよ     aodag   BPStyle #10
ユニットテストツールunittest   標準ライブラリ   xunit由来   TestCaseを必ず継承する   Fixtureがクラス単位だけ   PEP8に従ってない!nose   簡単にテストを書ける   簡単にテストを実行できる  ...
簡単にテストを書くための機能 Discover Tests Fixtures Plugins
Discover Tests  パッケージ、モジュール、クラス、関数などで名前に test_* などを  含むもの。  TestCaseを継承したクラスを探し出してテストしてくれる。with-doctestオプションでテスト以外のコードからdo...
例from nose.tools import eq_, ok_def test_it():    assert 1 + 1 == 2def test_with_bucho():    ok_(bucho.show())実行するには?$ nos...
例:doctestdef show():    """ show something    >>> show()    something    """    print "something"doctestを実行$ nosetests --w...
FixturessetUpやtearDownのことNoseで使えるFixtureの単位   パッケージ   モジュール   クラス   関数
パッケージ Fixture__init__.py に setUp, tearDown関数を書く
モジュールFixtureモジュール内のトップレベルで setUp, tearDown関数を書く
関数Fixturewith_setup デコレータでsetUp関数とtearDown関数をくっつける@with_setup(createdb, teardowndb)def test_it():    ....
Fixtureの例
Fixtureが実行される順序パッケージ1のsetUpモジュール1のsetUpモジュール1内のテスト関数実行モジュール1のtearDownモジュール2のsetUpモジュール2内のテスト関数実行モジュール2のtearDownパッケージ2のtear...
Doctestwith-doctestソースコメント中のdoctestも実行するdoctest-extensionsphinxドキュメントなどの中に書いてあるdoctestも実行するdoctest-fixturedoctestのためのfixtu...
プラグインCover テストカバレージを収集Log Capture ログ出力を収集looping over failed tests テストが失敗する間、ファイル更新を監視して自動でテストを実行
プラグインも簡単にプラグインインターフェイス IPluginInterface普通はPluginクラスを継承すればOK
3/26 都内某所  Noseで全てのテストで必ずteardown  する処理が欲しい(GAEのログイン  情報を持った環境変数を消す  プラグイン書けばできるよ  プラグインはテストケースごとのフッ  クがあるからね  Noseのプラグインを...
他のテストツール WebTest WSGIアプリの機能テストに。 TOX virtualenvへのインストールからテスト実行を自動化。 unittest2 assert* が充実。discoveryも多少サポート。
     Installation and quick start - nose v1.0.0    documentation http://somethingaboutorange.    com/mrl/projects/nose/1.0...
Upcoming SlideShare
Loading in …5
×

Nose 鼻をきかせてテストせよ

1,833 views

Published on

Published in: Technology
  • Be the first to comment

Nose 鼻をきかせてテストせよ

  1. 1. Nose鼻をきかせてテストせよ aodag BPStyle #10
  2. 2. ユニットテストツールunittest 標準ライブラリ xunit由来 TestCaseを必ず継承する Fixtureがクラス単位だけ PEP8に従ってない!nose 簡単にテストを書ける 簡単にテストを実行できる 豊富なプラグイン PEP8 ready
  3. 3. 簡単にテストを書くための機能 Discover Tests Fixtures Plugins
  4. 4. Discover Tests パッケージ、モジュール、クラス、関数などで名前に test_* などを 含むもの。 TestCaseを継承したクラスを探し出してテストしてくれる。with-doctestオプションでテスト以外のコードからdoctestを探し出してテストしてくれる。
  5. 5. 例from nose.tools import eq_, ok_def test_it():    assert 1 + 1 == 2def test_with_bucho():    ok_(bucho.show())実行するには?$ nosetests
  6. 6. 例:doctestdef show():    """ show something    >>> show()    something    """    print "something"doctestを実行$ nosetests --with-doctest
  7. 7. FixturessetUpやtearDownのことNoseで使えるFixtureの単位 パッケージ モジュール クラス 関数
  8. 8. パッケージ Fixture__init__.py に setUp, tearDown関数を書く
  9. 9. モジュールFixtureモジュール内のトップレベルで setUp, tearDown関数を書く
  10. 10. 関数Fixturewith_setup デコレータでsetUp関数とtearDown関数をくっつける@with_setup(createdb, teardowndb)def test_it():    ....
  11. 11. Fixtureの例
  12. 12. Fixtureが実行される順序パッケージ1のsetUpモジュール1のsetUpモジュール1内のテスト関数実行モジュール1のtearDownモジュール2のsetUpモジュール2内のテスト関数実行モジュール2のtearDownパッケージ2のtearDown
  13. 13. Doctestwith-doctestソースコメント中のdoctestも実行するdoctest-extensionsphinxドキュメントなどの中に書いてあるdoctestも実行するdoctest-fixturedoctestのためのfixtureを指定する
  14. 14. プラグインCover テストカバレージを収集Log Capture ログ出力を収集looping over failed tests テストが失敗する間、ファイル更新を監視して自動でテストを実行
  15. 15. プラグインも簡単にプラグインインターフェイス IPluginInterface普通はPluginクラスを継承すればOK
  16. 16. 3/26 都内某所 Noseで全てのテストで必ずteardown する処理が欲しい(GAEのログイン 情報を持った環境変数を消す プラグイン書けばできるよ プラグインはテストケースごとのフッ クがあるからね Noseのプラグインを作り始める(イ マココ #pyhack http://togetter.com/li/116938
  17. 17. 他のテストツール WebTest WSGIアプリの機能テストに。 TOX virtualenvへのインストールからテスト実行を自動化。 unittest2 assert* が充実。discoveryも多少サポート。
  18. 18.   Installation and quick start - nose v1.0.0 documentation http://somethingaboutorange. com/mrl/projects/nose/1.0.0/

×