2010-05-07 49 views
1

我正在編寫包含一些示例的python模塊。這些樣本不是單元測試,它們太長且複雜,不適合文檔測試。我對自動檢查這些示例運行的最佳做法感興趣。在Python模塊中測試示例代碼

我目前的項目佈局非常標準,除了有一個額外的頂級生成文件有構建,安裝,單元測試,覆蓋範圍和配置文件目標,根據需要委託setup.py和鼻子。

projectname/ 
    Makefile 
    README 
    setup.py 
    samples/ 
     foo-sample 
     foobar-sample 
    projectname/ 
     __init__.py 
     foo.py 
     bar.py 
    tests/ 
     test-foo.py 
     test-bar.py 

我已經考慮增加一個sampletest模塊,或添加nose.tools.istest裝飾到樣品的入口點函數,但對於一個小樣本,這些解決方案聽起來有點難看。

這個問題類似於Automatically Unit Test Example Code,但我相信蟒蛇的最佳實踐將C#

+0

在'projectname?'下有文件'projectname'是否理想? – Dombey 2012-10-24 19:09:59

回答

3

大部分時間,我只是用unittest來測試我的例子和功能測試。這不是單元測試,但我用unittest模塊做的很多事情不是。引用Knuth的話說:「一臺計算機並不介意它的程序是否與其名稱不符。」

3

你不能只是做不同:

if __name__ == "__main__": 
    run_tests() 

在模塊的代碼?這樣,只有當模塊被作爲獨立程序調用時纔會運行,而不是在import被編入其他代碼時運行。

+0

問題是某些模塊有多個樣本,並且這些樣本中的代碼與模塊中的代碼無關 – 2010-05-07 13:45:50