나는 파이썬에서 unittest
라이브러리를 사용하여 테스트를 작성하고있다. 테스트 데이터가 다른 여러 테스트 환경이있다.별도의 저장소에 테스트 참조 데이터를 저장하는 방법은 무엇입니까?
- 테스트 참조 데이터를 저장하는 가장 좋은 방법은 무엇입니까 ('테스트 * .py'파일에 넣지 않으려 고합니다)?
- 특수한 형식으로 저장하는 좋은 방법이 있습니까 (메서드를 호출하여 값을 비교하여 출력 할 값을 비교할 때)?
아이디어가 있으십니까?
나는 파이썬에서 unittest
라이브러리를 사용하여 테스트를 작성하고있다. 테스트 데이터가 다른 여러 테스트 환경이있다.별도의 저장소에 테스트 참조 데이터를 저장하는 방법은 무엇입니까?
아이디어가 있으십니까?
사용자 지정 저장소에서 데이터 검색을 수행하는 데코레이터를 작성하여 실제 테스트 기능에 전달할 수 있습니다.
data = lambda: (
{
'input': '1234',
'expected_op': '1234'
},
{
'input': '1234',
'expected_op': '1234'
}
)
@helper.data_provider(data)
def test_something(self, input, expected_op):
self.assertEqual(input, expected_op)
이제 장식은 모든 데이터 점을 테스트 함수를 호출합니다 :
from functools import wraps
def data_provider(fn_dp):
def test_decorator(fn_test):
@wraps(fn_test)
def wrapper(self, *args, **kwds):
for data in fn_dp():
try:
fn_test(self, **data)
except AssertionError, e:
raise(AssertionError('{0} - [{1}]'.format(e, data)))
return wrapper
return test_decorator
지금 내가 이렇게 내 unittests를 작성할 수
실내 장식 : 나는 과거에 이런 짓을했습니다 .
구체적인 경우는 fn_test(self, **data)
을 data_provider
에서 확인하십시오. **data
대신 사용자 정의 저장소에서 읽고 여기에서 테스트 함수를 호출 할 수 있습니다.
데이터 저장소를 구성하는 방법을 알아야합니다. 즉 : 2 개의 입력 (필자가 가지고있는)을 채우고 버튼을 클릭하여 결과 (표)를 확인해야합니다. –
다음 내 솔루션 : 가 나는 스토리지 클래스, 마녀는 각 검사 전에 JSON 파일에서 테스트 데이터 (설정 방법에서 호출)받을 가지고
def setUp(self):
self.data = self.storage.getDataFor(self._testMethodName)
def test_ftu_02_003(self):
self.assertEqual(self.data['title'], self.page.get_title())
self.assertEqual(self.data['header'], self.page.get_header())
및 샘플 JSON 파일 예를 들어, JSON 파일 이름은 동일 평 파일 이름으로 :
{
"test_ftu_02_003":{
"title":"example_title",
"header":"example_title"
}
}
그래서 각 환경에 대한 파일과 폴더의 경로를 변경할 수 있으며, 파이썬 코드에서 JSON 파일을 다시 작성하기 쉽습니다.
질문 : 출력 데이터는 어떻습니까?
답변 : 모든 데이터가 입력 된 데이터입니다 (어설 션 *으로 입력 됨)
Andrew, 조금 편집했습니다. 데이터 저장소에 "입력 데이터"와 "예상 결과"가있을 것으로 기대하십니까? – karlcow