美文网首页软件测试理论
Python测试框架nose的介绍

Python测试框架nose的介绍

作者: 达闻西 | 来源:发表于2015-05-26 16:02 被阅读1092次

下面以一个例子说明nose
目录结构如下(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()

对应的测试代码:

# /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选项,针对当前路径下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会自动进行集成测试。nose默认是对当前目录下tests目录进行测试,默认规则:文件(含有test),函数(test_开头),类(Test开头)。

主要使用assert 进行断言。

更多精彩内容,请关注我的个人博客

相关文章

网友评论

  • yarving:我来补充下。

    这篇文章依赖memcache 和python-memcache包。
    1. python的memcache在ubuntu下的安装命令是`sudo apt-get install python-memcache`
    2. memcache的安装命令是:`sudo apt-get install memcached`
    3. memcache的启动命令是:`memcached`,默认使用11211端口。

    这样所有的测试就都能通过了。
    达闻西:@yarving 奥,不好意思,想起来了,太久没看这个,的确如你所说
    yarving: @达闻西 `import memcache`
    达闻西:@yarving 谢谢你的意见。不过我好像没有用到memcache

本文标题:Python测试框架nose的介绍

本文链接:https://www.haomeiwen.com/subject/ulerqttx.html