반응형
일종의 테스트 데이터가 있고 각 항목에 대한 단위 테스트를 만들고 싶습니다. 내 첫 번째 아이디어는 다음과 같이하는 것이 었습니다.
import unittest
l = [["foo", "a", "a",], ["bar", "a", "b"], ["lee", "b", "b"]]
class TestSequence(unittest.TestCase):
def testsample(self):
for name, a,b in l:
print "test", name
self.assertEqual(a,b)
if __name__ == '__main__':
unittest.main()
이것의 단점은 하나의 테스트에서 모든 데이터를 처리한다는 것입니다. 즉시 각 항목에 대해 하나의 테스트를 생성하고 싶습니다. 어떤 제안?
해결 방법
이를 "매개 변수화"라고합니다.
이 접근 방식을 지원하는 몇 가지 도구가 있습니다. 예 :
결과 코드는 다음과 같습니다.
from parameterized import parameterized
class TestSequence(unittest.TestCase):
@parameterized.expand([
["foo", "a", "a",],
["bar", "a", "b"],
["lee", "b", "b"],
])
def test_sequence(self, name, a, b):
self.assertEqual(a,b)
테스트를 생성합니다.
test_sequence_0_foo (__main__.TestSequence) ... ok
test_sequence_1_bar (__main__.TestSequence) ... FAIL
test_sequence_2_lee (__main__.TestSequence) ... ok
======================================================================
FAIL: test_sequence_1_bar (__main__.TestSequence)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/parameterized/parameterized.py", line 233, in <lambda>
standalone_func = lambda *a: func(*(a + p.args), **p.kwargs)
File "x.py", line 12, in test_sequence
self.assertEqual(a,b)
AssertionError: 'a' != 'b'
역사적인 이유로 2008 년경 원래 답변을 남길 것입니다.)
다음과 같이 사용합니다.
import unittest
l = [["foo", "a", "a",], ["bar", "a", "b"], ["lee", "b", "b"]]
class TestSequense(unittest.TestCase):
pass
def test_generator(a, b):
def test(self):
self.assertEqual(a,b)
return test
if __name__ == '__main__':
for t in l:
test_name = 'test_%s' % t[0]
test = test_generator(t[1], t[2])
setattr(TestSequense, test_name, test)
unittest.main()
참조 페이지 https://stackoverflow.com/questions/32899
반응형
'파이썬' 카테고리의 다른 글
파이썬 오프셋 롤 포워드 후 월 오프셋 추가 후 pandas 범위를 벗어난 나노초 타임 스탬프 (0) | 2020.11.15 |
---|---|
파이썬 Python에서 null 개체 참조 (0) | 2020.11.15 |
파이썬 Seaborn에서 두 개의 그래프를 오버레이하려면 어떻게해야합니까? (0) | 2020.11.15 |
파이썬 Python을 사용하여 작성중인 로그 파일에서 읽기 (0) | 2020.11.15 |
파이썬 바이트 파일에서 PIL 이미지 열기 (0) | 2020.11.15 |
댓글