在鼻子中的设置和拆卸功能之间共享对象

时间:2014-12-23 19:08:20

标签: python testing nose nosetests

我使用鼻子,我需要启动HTTP服务器进行测试。我在设置功能中启动它,并在拆卸功能中将其停止,如下所示:

from my_service import MyClient, MyServer


def setup():
    global server
    server = MyServer()
    server.start()

def teardown():
    server.stop()


def test_client():
    client = MyClient('localhost', server.port)
    assert client.get_colour() == "blue"

是否有更优雅的方法让服务器对象可用于拆除此全局变量以外的功能和测试?也许是从设置返回的值,它将作为参数传递给测试和拆解?

1 个答案:

答案 0 :(得分:2)

您考虑过unittest了吗?它确实存在,并且鼻子可以很好地使用它:

import unittest

class MyLiveServerTest(unittest.TestCase):
    def setUp(self):
        self.server = MyServer()
        self.server.start()        

    def test_client(self):
        client = MyClient('localhost', self.server.port)
        assert client.get_colour() == "blue"

    def tearDown(self):
        self.server.stop()