파이썬 테스트 프레임워크

최초 게시물은 Python Testing Framework - Reading Time: 3 Mins, 표지 사진은 Photo by David Travis on Unsplash

소개하다.
테스트는 일종의 고통일 수도 있다.테스트 용례를 작성하는 것은 매우 고통스럽다.그것 없이는 수동 테스트가 당신의 생명을 잃게 할 것이다.모든 명령과 몇 시간이 걸릴 수도 있는 절차를 기억해야 할 때 상황은 더욱 나빠진다.
나는 시간이 촉박한 상황에서 배달의 중요성을 안다.하지만...만약 네가 많은 정력을 들여 너의 배치를 테스트한다면.너는 자신을 파괴하고 있다. 왜냐하면 이것들은 아마도 automated일 것이다.이렇게 하면 코드를 변경할 시간을 내서 더 좋고, 더 빠르고, 유지보수할 수 있으며, 미래의 자신이나 유지보수할 동료들이 사용할 수 있도록 할 수 있다.

단원 테스트
이것은 개발 환경에 파이톤을 설치할 때 파이톤과 함께 제공하는 default testing framework이다.소개 많이 안 할게요.Java는 JUnit에서 영감을 얻었습니다.
나는 파이톤과 묶인 기본 프레임워크에 대해 매우 큰 불만을 가지고 있다는 것을 발견했다.테스트 용례를 만들 때 템플릿 코드입니다.이 테스트 용례의 예를 보아라. 그것은 나로 하여금 그것을 배우는 것을 멈추게 하기에 충분하다.내 코드를 테스트하기 위해 많은 템플릿 코드를 작성해야 하기 때문입니다.
import unittest

class TestStringMethods(unittest.TestCase):

    def test_upper(self):
        self.assertEqual('foo'.upper(), 'FOO')

    def test_isupper(self):
        self.assertTrue('FOO'.isupper())
        self.assertFalse('Foo'.isupper())

    def test_split(self):
        s = 'hello world'
        self.assertEqual(s.split(), ['hello', 'world'])
        # check that s.split fails when the separator is not a string
        with self.assertRaises(TypeError):
            s.split(2)

if __name__ == '__main__':
    unittest.main()

피트스트
Pytest은 여전히 나의 고토 테스트 프레임워크이다.나는 파이스트를 좋아한다.그것은 사용하기 쉽고 대량의 템플릿 파일이 필요하지 않아도 일을 할 수 있다
# From the previous example of the unit test but in Pytest

def test_upper():
    assert 'foo'.upper() == "FOO"

def test_isupper():
        assert 'FOO'.isupper() == True
        assert 'Foo'.isupper() == False

def test_split():
    s = 'hello world'

    assert s.split == ['hello', 'world']
    assert type(s.split(2)) == str
점점 더 좋은 것들이 많아진다.예를 들어 Markers은 특정한 테스트 용례를 집행하는 데 쓰인다.여기에 Fixtures을 더하면 테스트를 하나의 기초에서 시작한다.
프로그램을 대체적으로 이해하기 위해 스모그 테스트를 만들 수 있습니다.PyCharm Professional을 잊지 마세요. 이로써 자동화와 실행이 Test Driven Development (TDD)을 쉽게 할 수 있습니다.이것도 내가 여전히 PyCharm에 남아 있는 일부 원인이다. 왜냐하면 나는 그들의 많은 것을 좋아하기 때문이다.

표현
Behave Behavour Driven Development (BDD)에 전념하는 것은 내가 아직 해 본 적이 없는 일이다.
그러나 문외한으로는 Given-When-Then~표기(~'given*20when*20then')~searchTerm~'~sort~false~sortDirection~'asc~page~1)'공식을 사용하여 테스트 용례를 사용자 이야기로 구성했다.이것은 디자이너, 제품 소유자든 개발자든 누구나 테스트 용례의 상하문을 쉽게 이해할 수 있게 한다.이 공식으로 사용자 이야기를 테스트 용례로 테두리를 만들 때
현재, 나의 일은 그것을 필요로 하지 않는다.그러나 내가 The Pragmatic Programmer을 읽었을 때 나는 더 많은 견해를 얻었다.이것은 나로 하여금 it와 TDD 실천을 결합시키는 시각을 가지게 하여 그물을 형성하게 했다.
각종 장면을 테스트 용례로 삼아 테스트를 진행하다.구멍이 하나 생기면나중에 다시 오류가 발생하지 않도록 프로그램을 수정하고 단원 테스트를 만듭니다.

결론
테스트 용례를 작성하여 테스트 과정을 자동화하는 필요성을 개괄하여 더 높은 가치의 업무에 전념할 수 있도록 했습니다.예를 들어 문서를 작성하고 CI/CD 파이프라인을 개선하며 심지어 초보 개발자와 프로그래밍을 맞추어 그들의 학습 과정을 가속화시킨다.
나는python 테스트 프레임워크 3개도 소개했다.나는 이것이 파이톤이 덧붙인 단원 테스트라는 것을 안다.PyTest는 내가 가장 좋아하는 테스트 프레임워크 중의 하나다.BDD 사용에 집중하고 Give-When-Then 공식을 사용하여 사용자 이야기에서 테스트 장면을 만든다.
마지막으로 당신은 전문 개발자가 되고 싶습니까?답이 긍정적이라면나는 나의 전자책 "Picking Your Specialisation as a Developer"을 더 높은 봉급을 받거나 네가 좋아하는 일을 하는 모든 사람에게 무료로 증정할 것이다.
이 게시물에는 부속 링크가 포함되어 있습니다. 만약 당신이 본고에서 제공한 다른 링크에서 제품이나 서비스를 구매한다면, 저는 보상을 받을 수 있습니다.

참고 문헌
  • 5 Reasons for Automated Testing
  • Python Default Testing Framework

  • Pytest
  • Markers
  • Fixtures
  • PyCharm
  • Test Driven Development (TDD)
  • Behave

  • Behavour Driven Development (BDD)
  • JUnit
  • The Pragmatic Programmer
  • Getting Started with Python Testing
  • Pytest
  • Behave
  • Python Testing with Pytest
  • Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices
  • 좋은 웹페이지 즐겨찾기