添加测试代码

funniest 需要一些测试工作. 这些代码都应该放在 funniest. 子模块的目录下. 这样的结构,这些测试代码既可以导入, 又不会污染全局的命名空间.:

funniest/
    funniest/
        __init__.py
        tests/
            __init__.py
            test_joke.py
    setup.py
    ...

test_joke.py 是我们第一个测试文件. 虽然现在有一些小题大做, 但是这是为了演示代码是如何组织的, 所以我们创建了 unittest.TestCase 的一个子类:

from unittest import TestCase

import funniest

class TestJoke(TestCase):
    def test_is_string(self):
        s = funniest.joke()
        self.assertTrue(isinstance(s, basestring))

运行这些测试用例最好的方式是使用 Nose (特别是你不知道用什么的时候)

$ pip install nose $ nosetests

为了把测试工作集成到 setup.py 中, 我们需要添加一些参数, 这些参数会确保运行测试用例的时候Nose会被安装.:

setup(
    ...
    test_suite='nose.collector',
    tests_require=['nose'],
)

然后, 我们就可以这样运行测试:

$ python setup.py test

setuptools 将会安装nose和运行测试用例.