unittest.TestCase의 경우 __init__
unittest.TestCase
클래스가 초기화 될 때 수행하는 작업에 몇 가지를 추가하고 싶지만 수행 방법을 알 수 없습니다.
지금 나는 이것을하고있다 :
#filename test.py
class TestingClass(unittest.TestCase):
def __init__(self):
self.gen_stubs()
def gen_stubs(self):
# Create a couple of tempfiles/dirs etc etc.
self.tempdir = tempfile.mkdtemp()
# more stuff here
이 전체 테스트 세트에 대해 모든 스텁이 한 번만 생성되기를 바랍니다. setUpClass()
Python 2.4에서 작업 중이기 때문에 사용할 수 없습니다 (python 2.7에서도 작동하지 못했습니다).
내가 여기서 뭘 잘못하고 있니?
이 오류가 발생합니다.
`TypeError: __init__() takes 1 argument (2 given)`
... __init__
명령으로 실행할 때 모든 스텁 코드를 이동할 때 기타 오류가 발생 합니다 python -m unittest -v test
.
이 시도:
class TestingClass(unittest.TestCase):
def __init__(self, *args, **kwargs):
super(TestingClass, self).__init__(*args, **kwargs)
self.gen_stubs()
당신은 재정의 TestCase
의를 __init__
당신을 위해 기본 클래스의 핸들을 인수를하게 할 수 있습니다, 그래서.
init 함수를 재정의하는 것에 대한 설명을 추가하고 싶었습니다.
unittest.TestCase
이 함수는 테스트 클래스의 각 메서드 전에 호출됩니다. 모든 테스트 메서드를 실행하기 전에 한 번 수행해야하는 값 비싼 계산을 추가하려면 SetUpClass 클래스 메서드를 사용하십시오.
@classmethod
def setUpClass(cls):
cls.attribute1 = some_expensive_computation()
이 함수는 클래스의 모든 테스트 메서드 전에 한 번 호출됩니다. 각 테스트 메서드 전에 호출되는 메서드는 setUp을 참조하세요.
unittest2를 설치하고 해당 패키지의 unittest를 사용합니다.
import unittest2
그런 다음 특별한 초기화 논리를 위해 setupModule / tearDownModule 또는 setupClass / tearDown 클래스를 사용하십시오.
더 많은 정보 : http://www.voidspace.org.uk/python/articles/unittest2.shtml
또한 단위 테스트보다 통합 테스트를 더 많이 만들고있을 가능성이 높습니다. 테스트를 구별하거나 다른 컨테이너 모듈에 넣으려면 좋은 이름을 선택하십시오.
참고 URL : https://stackoverflow.com/questions/17353213/init-for-unittest-testcase
'development' 카테고리의 다른 글
iPhone의 JSON 및 핵심 데이터 (0) | 2020.08.30 |
---|---|
Eclipse Juno에서 "빠른 액세스"항목 제거 (0) | 2020.08.30 |
Javascript 라이브러리 및 CSS 폴더 구조 구성을위한 모범 사례 (0) | 2020.08.30 |
PHP의 참조 할당 연산자, = & (0) | 2020.08.30 |
프로그래밍 대회 참가자가 C ++ 및 Java를 사용하는 이유는 무엇입니까? (0) | 2020.08.30 |