Python FDK-함수 단위 테스트!

처음에 Fn 플랫폼은 공식적으로 지원되는 여러 FDK를 제공했습니다. 시간이 지남에 따라 Fn CLI에서 더 많은 FDK가 도입되고 지원되었습니다.

FDK의 목표는 매우 간단합니다. 사용하기 쉬운 프로그래밍 인터페이스를 제공하는 것과 함께 Fn- 기능 프로토콜 상호 통신을 숨 깁니다. 목표는 개발자가 서버리스 함수를 작성하기 위해 어떤 프로그래밍 언어를 선택하든 UX를 동일하게 만드는 것입니다.

테스팅

Fn CLI (참조 fn test)는 블랙 박스 테스트 를 실행하기위한 구성 가능한 인터페이스를 생성하여 서버리스 기능 테스트의 첫 번째 장벽을 제공합니다 . 다음을 살펴 보겠습니다 test.json.

{
    "tests": [
        {
            "input": {
                "body": {
                    "name": "Johnny"
                }
            },
            "output": {
                "body": {
                    "message": "Hello Johnny"
                }
            }
        },
        {
            "input": {
                "body": ""
            },
            "output": {
                "body": {
                    "message": "Hello World"
                }
            }
        }
    ]
}

이 유형의 테스트는 실제로 무엇에 관한 것입니까? fn test이러한 테스트를 실행하기위한 두 가지 모드 (로컬 및 원격)를 제공합니다. 주요 차이점은 로컬 모드의 경우 Docker를 실행해야한다는 것입니다. 절차는 다음과 같습니다.

  • 하다 docker build
  • 하다 docker run
  • 프로토콜 프레임 요청을 함수에 전달
  • 기능을 해체하다

fn testDocker가 관련되어 있다는 사실을 포함하는 것을 좋아하지 않는 몇 가지 이유가 있습니다 . 즉, 개발자가 이미지를 빌드하고 매우 간단한 블랙 박스 테스트를 위해 실행해야합니다.

FDK의 단위 테스트

프로토콜 요청 / 응답 처리는 각 FDK의 미션 크리티컬 기능이므로 공식적으로 지원되는 FDK가 잘 테스트되고 100 % 업스트림 Fn 기능을 준수합니다.

약간의 차이에도 불구하고 FDK의 핵심은 동일합니다. 그러나 특정 FDK는 FDK-Node의 promise 및 FDK-Python의 async / await와 같은 프로그래밍 언어 별 기능을 제공합니다. 공식적으로 지원되는 FDK의 주요 기능 중 하나는 도입을 고려하고 있다는 점이 단위 테스트입니다. 현재로서는 Java FDK만이 가장 효율적인 방법으로 단위 테스트 (JUnit)를 작성하는 데 필요한 API를 제공합니다. 곧 추가 FDK로 동일한 기능 범위를 제공 할 수 있기를 바랍니다.

v0.0.33부터 Python FDK는 단위 테스트 실행을위한 광범위한 프레임 워크를 제공합니다. Python FDK 서버리스 함수에 대한 테스트 스위트를 살펴 보겠습니다.

알다시피, 아이디어는 특정 구현을 다루는 네이티브 단위 테스트와 함께 함수 상용구를 제공하는 것입니다 (함수 구현이 동일하게 유지되는 한 테스트는 안정적으로 유지됩니다). 테스트 스위트를 살펴보면 다음과 같은 어설 션 메소드가 표시됩니다.

assertInHeaders - allows asserting header(s) presence in response
assertInTime - allows asserting the time necessary for a function to finish
assertNotInTime - allows asserting the time within a function was not able to finish
assertResponseConsistent - allows to check the response data, if the data corresponds to assertion expectations

테스트를 실행하는 방법?

네이티브 테스트 도구에 익숙하다면 PyTest를 사용 하세요 . 그렇지 않은 경우 걱정하지 마십시오. pytest도구 를 설치 하고 다음 명령을 실행하기 만하면됩니다.

pytest -v -s --tb=long func.py

이 명령을 사용하면 다음과 같은 출력이 표시됩니다.

에 대한 추가 플러그인을 사용 pytest하면 테스트 범위를 얻을 수 있습니다. 다음 명령을 사용하여 커버리지 플러그인을 설치합니다.

pip install pytest-cov

pytest -v -s --tb=long --cov=func func.py

이 게시물에 대한 일반적인 후속 조치로 유용한 다음 링크를 찾을 수 있습니다.

  • 기존 FDK를 살펴보십시오 .
  • Fn YouTube 채널을 구독하십시오 .
  • Fn 플랫폼에 대한 자세한 내용은 프로젝트 홈 페이지를 참조하십시오 .

Suggested posts

Langchain을 사용하여 ChatGPT 플러그인을 무료로 실행하는 방법

Langchain을 사용하여 ChatGPT 플러그인을 무료로 실행하는 방법

브라우저, 코드 해석기 등과 같은 새롭고 강력한 ChatGPT 플러그인에 대해 들어보셨을 것입니다. 그러나 문제가 있습니다. 플러그인에 대한 액세스는 대기자 명단으로 제한되어 있으므로 많은 사람들이 액세스할 수 없습니다.

내가 가장 많이 사용하는 코딩 리소스

내가 가장 많이 사용하는 코딩 리소스

이번 주에 저는 일일 이메일 목록의 회원으로부터 이메일을 받았습니다. 그들은 알고 싶어했습니다. 매일, 매주, 매월 어떤 리소스를 방문합니까? 좋은 질문입니다! 제 작업 흐름과 제가 사용하는 주요 리소스에 대한 통찰력을 공유하게 되어 기쁩니다.

Related posts

무한한 삶

당신이 자라면 세상은 있는 그대로이고 당신의 삶은 단지 세상 안에서 당신의 삶을 사는 것이며, 결코 당신의 생명을 위험에 빠뜨리지 않고, 정해진 길을 따르고 결국 죽고, 벽을 너무 세게 치세요.하지만 그것은 매우 제한된 삶입니다.

빨간 머리 소녀의 솔로 퍼포먼스

Hayden의 임무를 맡은 Katie는 자위하는 자신을 촬영합니다.

빨간 머리 소녀의 솔로 퍼포먼스

Hayden이 함께 저녁을 보낸 후 Katie를 대학 기숙사로 데려다 준 것은 자정 이후였습니다. 그녀는 아침에 일찍 수업이 있었고 전날 밤 그와 함께 지낸 후 다시 옷을 갈아입지 않았습니다.

지구를 구하고 돈을 버는 방법

지구를 구하고 돈을 버는 방법

페트병, 유리병, 알루미늄캔, 그린에너지 패키지를 무심코 버린 적이 몇 번이나 되셨나요? 재활용에 대한 대가로 무언가를 얻을 수 있기를 몇 번이나 바랐습니까? 당신이 대부분의 사람들과 같다면 대답은 아마도 여러 번일 것입니다. 재활용은 종종 번거로움, 자질구레한 일 또는 즉각적이거나 실질적인 혜택을 가져오지 않는 의무로 간주됩니다.

취하기의 아이의 첫 번째 책

취하기의 아이의 첫 번째 책

(경고- 이것은 유쾌하게 전복하려는 풍자입니다. 절대 어린이용이 아닙니다.) 당신은 엄마와 아빠가 부엌에 숨어서 그 냄새나는 담배를 피우는 것을 본 적이 있습니다. 그들은 당신에게 말합니다.