2014-12-23 2 views
1

나는 코를 사용하고 있으므로 테스트를 위해 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" 

이 전역 변수 이외의 분해 기능 및 테스트에 사용할 수있는 서버 개체를 가지고 더 우아한 방법이 있나요? 아마도 테스트 및 분해에 인수로 전달 될 설치 프로그램에서 반환 된 값일까요?

답변

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()