내 Flask 단위 테스트에서 'RuntimeError: Working Outside of Application Context'가 나타나는 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-11 22:04:02
원래의
947명이 탐색했습니다.

Why Am I Getting a

RuntimeError: Working Outside of Application Context

지정된 Flask 애플리케이션의 단위 테스트에서 before_request 함수를 호출하려는 시도(테스트 .py) "RuntimeError: 작업 중인 애플리케이션 컨텍스트 외부"가 발생합니다. input_info 함수를 호출할 때도 동일한 오류가 발생합니다.

Background:

Flask는 데이터베이스 연결과 같은 서비스에 대한 액세스를 제공하는 전역 애플리케이션 컨텍스트를 관리합니다. 컨텍스트 내에서 작업하려면 애플리케이션의 요청-응답 주기 내에서 코드를 실행해야 합니다.

해결책:

오류를 해결하려면 단위 테스트에서 애플리케이션 컨텍스트. 이는 app.app_context()를 컨텍스트 관리자로 사용하여 달성할 수 있습니다:

def test_connection(self):
    with app.app_context():
        # Test code here using `g.db`
로그인 후 복사

대체 솔루션:

애플리케이션 컨텍스트를 수동으로 관리하는 대신 다음을 사용할 수 있습니다. 단위 테스트를 위한 컨텍스트를 자동으로 설정하는 Flask-Testing 확장.

추가 고려 사항:

  • 사용 후에는 데이터베이스 연결이 닫혀 있는지 확인하세요.
  • 테스트를 실행하기 전에 고정 장치나 설정 방법을 사용하여 데이터베이스를 초기화하세요.
  • 단위 테스트를 위해 Flask의 CSRF 보호를 비활성화하세요.

위 내용은 내 Flask 단위 테스트에서 'RuntimeError: Working Outside of Application Context'가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿