파이썬의 unittest 모듈을 사용하여 작성된 unittest 세트가 있습니다. 그들은 setUpModule() 함수를 사용하여 테스트를 실행하는 데 필요한 공유 된 "stuff"(일부 http 세션 포함)로 전역 변수를로드합니다.글로벌 비품을 가지고있을 때 python unittests를 py.test로 변환하는 방법은 무엇입니까?
unittest
으로 테스트를 실행하면 py.test
으로 정상적으로 실행되지만 테스트에 실패합니다.
필자는 이전의 pytest fixture 함수 (unittest와 동일한 이름을 가지지 않음)를 사용하여 실행되도록 패치했습니다. 여러 스레드에서 실행되지 않는 경우에만 작동하지만, 그 기능을 사용하고 싶습니다.
필자의 경우 20 개 클래스 (unittest.TestCase)와 각 클래스 내에 10 개의 테스트가 있으므로 문서 예제는 쓸모가 없습니다. 분명히 나는 각 테스트에 새로운 매개 변수를 추가하고 싶지 않습니다.
지금까지는 클래스 setUp() 메서드를 사용하여 self 내부에 공유 디코딩을로드하고 각 테스트 내부에이 메서드를 사용했습니다.
#!/usr/bin/env python
# conftest.py
@pytest.fixture(scope="session")
def manager():
return { "a": "b"}
그리고 지금 시험 :
#!/usr/bin/env python
# tests.py
class VersionTests(unittest.TestCase):
def setUp(self):
self.manager = manager
def test_create_version(self):
# do something with self.manager
pass
나는 고정을 한 시간을 호출, 다중 스레드로 작업 할 수있는 솔루션이 필요하다는 것을 기억하시기 바랍니다.