2010年8月23日 星期一

nosetests 的用法

將之前寫過的東西複製過來備忘。


安裝方式: easy_install nose。
寫 unittest 時,管理 test suit 是件很瑣碎又易犯錯的事,相信很多人會想說,能不能跑個程式,自行搜集目錄下全部的測試碼並自動執行。沒錯,大家的心聲 nose 聽到了!這裡直接用例子說明 nose 的使用方式,詳細說明請見《An Extended Introduction to the nose Unit Testing Framework 》
  • 執行目前目錄下所有測試:
    1
    
    nosetests
  • 只執行 package PKG 下的 module MOD 內的測試:
    1
    
    nosetests PKG.MOD
  • 只執行 package PKG 下的 module MOD 內的 test case CLS 的測試 (注意 test case 前接得是冒號):
    1
    
    nosetests PKG.MOD:CLS
  • 執行目前目錄下所有測試並附上子目錄 pkg1、pkg2 的 Code coverage 資訊:
    1
    
    nosetests --with-coverage --cover-package=pkg1,pkg2 --cover-erase
  • 不要執行 slow_test.py:
    1
    
    nosetests -e slow_test.py
  • 使用四個 CPU 平行執行測試:
    1
    
    nosetests --processes=4
  • 只執行上回失敗的測試:
    1
    
    nosetests --failed
–with-coverage 需要先裝 coverage;–process 得另裝 package multiprocessing ( easy_install multiprocessing ),相關說明詳見 Multiprocess: parallel testing
另外,若要讓 nose 跳過物件 A 的測試,就在程式裡寫上
1
A.__test__ = False
比方若不想測模組 mod,就在 mod.py 裡寫上
1
__test__ = False

沒有留言:

張貼留言

在 Fedora 下裝 id-utils

Fedora 似乎因為執行檔撞名,而沒有提供 id-utils 的套件 ,但這是使用 gj 的必要套件,只好自己編。從官網抓好 tarball ,解開來編譯 (./configure && make)就是了。 但編譯後會遇到錯誤: ./stdio.h:10...