제공된 코드에서 데이터베이스 메서드에 액세스할 때 예외가 발생합니다. 단위 테스트 파일에서. 특히 test.py 파일에서 "before_request" 함수와 "input_info" 경로를 호출할 때 "RuntimeError: 응용 프로그램 컨텍스트 외부에서 작업 중" 오류가 발생합니다.
이 문제를 해결하고 내부에서 데이터베이스 상호 작용을 활성화하려면 단위 테스트에서는 Flask 애플리케이션 컨텍스트가 올바르게 설정되었는지 확인해야 합니다. Flask 애플리케이션 컨텍스트는 데이터베이스 연결을 포함한 요청별 상태를 관리합니다. 요청 컨텍스트 외부에서 테스트를 실행하는 경우 애플리케이션 컨텍스트를 수동으로 설정해야 합니다.
다음은 필요한 변경 사항을 포함하는 test.py의 수정된 테스트 코드 버전입니다.
from app import app from app import TestMySQL class Test(unittest.TestCase): def test_connection(self): with app.app_context(): object = TestMySQL() object.before_request() cursor = g.db.cursor() cursor.execute ('CREATE TABLE IF NOT EXISTS testmysql (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(40) NOT NULL, \ email VARCHAR(40) NOT NULL UNIQUE)') cursor.close()
app.app_context() 호출 내에 테스트 코드를 래핑하여 애플리케이션 컨텍스트를 설정하고 필요한 데이터베이스 연결 개체를 사용할 수 있는지 확인합니다. 이렇게 하면 "RuntimeError: 응용 프로그램 컨텍스트 외부에서 작업 중" 예외가 해결되고 단위 테스트 중에 데이터베이스 메서드에 성공적으로 액세스할 수 있습니다.
위 내용은 내 Flask 앱을 테스트할 때 'RuntimeError: running Outside of application context'가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!