2010-07-27 21 views
3

我最近從鼻子切換到新的unittest2包,以滿足我的python單元測試需求。它做了我想要的一切,除了我無法通過它的「發現」命令來識別代碼中的文檔 - 我仍然需要用鼻子來運行它們。這是不是執行或有我在這裏失蹤的東西?是否有可能使用unit2運行doctests

回答

3

Unit2只發現常規的Python測試。爲了讓它運行你的doctests,恐怕你需要寫一些最小化的樣板。另外:即將推出的插件體系結構可以讓這些任務的一部分自動化。

與此同時。您可能需要查看tox(由unittest2創建者在這裏描述)http://www.voidspace.org.uk/python/weblog/arch_d7_2010_07_10.shtml

+0

謝謝。 Tox真的很有趣。當我們使用獅身人面像來構建文檔時,使用它來運行doctests似乎也很好:) – c089 2010-07-29 05:50:00

1

需要告訴unit2有關您的doctests的樣板實際上是在當前的doctest文檔中給出的,儘管我花了幾分鐘才找到它:

http://docs.python.org/library/doctest.html#unittest-api

請注意,您可以通過模塊名稱爲DocTestSuite構造,而不必導入模塊自己,它可以減少你的樣板文件的長度的一半;它只需要看起來像:

from doctest import DocTestSuite 
from unittest import TestSuite 

def load_tests(loader, tests, pattern): 
    suite = TestSuite() 
    suite.addTests(DocTestSuite('my.module.one')) 
    suite.addTests(DocTestSuite('my.module.two')) 
    suite.addTests(DocTestSuite('my.module.three')) 
    return suite 
相關問題