Python測試框架nose的介紹

下面以一個(gè)例子說明nose
目錄結(jié)構(gòu)如下(foo模塊以及foo的測試代碼):

test@local:~$ tree /tmp/foomodule/
/tmp/foomodule/
|-- foo
|   |-- a.py
|   |-- b.py
|   `-- __init__.py
`-- tests
    |-- test_a.py
    `-- test_b.py

模塊代碼如下:

# /tmp/foomodule/foo/a.py 

def add(a, b):
    return a + b
def double(a):
    return a * 2

# /tmp/foomodule/foo/b.py 

import memcache
class Cache:
    def __init__(self, server):
        self.cache = memcache.Client([server])
    def get(self, name):
        return self.cache.get(name)
    def set(self, name, value):
        return self.cache.set(name, value)
    def delete(self, name):
        return self.cache.delete(name)
    def close(self):
        self.cache.disconnect_all()

對應(yīng)的測試代碼:

# /tmp/foomodule/tests/test_a.py 
from foo.a import add, double
def test_add():
    v = add(10, 20)
    assert v == 30
def test_double():
    v = double(10)
    assert v == 20

# /tmp/foomodule/tests/test_b.py 
from foo.b import Cache
class TestCache:

    def setUp(self):
        self.cache = Cache("127.0.0.1:11211")
        self.key   = "name"
        self.value = "smallfish"

    def tearDown(self):
        self.cache.close()

    def test_00_get(self):
        v = self.cache.get(self.key)
        assert v == None

    def test_01_set(self):
        v = self.cache.set(self.key, self.value)
        assert v == True
        v = self.cache.get(self.key)
        assert v == self.value

    def test_02_delete(self):
        v = self.cache.delete(self.key)
        assert v == True

先不解釋,跑一跑(-v -s選項(xiàng),針對當(dāng)前路徑下tests目錄測試):

test@local:/tmp/foomodule$ nosetests -s -v
test_a.test_add ... ok
test_a.test_double ... ok
test_b.TestCache.test_00_get ... ok
test_b.TestCache.test_01_set ... ok
test_b.TestCache.test_02_delete ... ok
----------------------------------------------------------------------
Ran 5 tests in 0.024s
OK

nosetests會自動進(jìn)行集成測試。nose默認(rèn)是對當(dāng)前目錄下tests目錄進(jìn)行測試,默認(rèn)規(guī)則:文件(含有test),函數(shù)(test_開頭),類(Test開頭)。

主要使用assert 進(jìn)行斷言。

更多精彩內(nèi)容,請關(guān)注我的個(gè)人博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容