InfoGrab DocsInfoGrab Docs

엔드투엔드 테스트 문제 해결

GitLab 엔드투엔드 테스트 실행 중 발생하는 브라우저 문제, 로그 활성화, 테스트 미실행, 로그아웃 등의 일반적인 문제를 진단하고 해결하는 방법을 설명합니다.

브라우저 동작 확인 # 엔드투엔드 테스트가 실패할 경우, 실패 시 브라우저에서 어떤 일이 발생하는지 확인하면 매우 유용합니다. 예를 들어, 테스트가 전혀 실행되지 않는다면 테스트 프레임워크가 해당 머신에서 유효하지 않은 URL을 열려고 시도하고 있을 수 있습니다. 브라우저에서 페이지 실패 화면을 직접 보면 이 문제가 더 명확해집니다. 테스트 실행 중 브라우저를 표시하려면 WEBDRIVER_HEADLESS=false 를 설정하세요. 예를 들어: cd gitlab/qa WEBDRIVER_HEADLESS=false bundle exec bin/qa Test::Instance::All http://localhost:3000 로그 활성화 # 테스트가 실패했을 때 실패 스택 트레이스만으로 원인을 파악하기 어려운 경우가 있습니다. QA_LOG_LEVEL=debug 를 설정하여 디버그 로그를 활성화하면 테스트 프레임워크가 시도하는 작업을 더 자세히 확인할 수 있습니다. 예를 들어: cd gitlab/qa QA_LOG_LEVEL=debug bundle exec bin/qa Test::Instance::All http://localhost:3000 그러면 테스트 프레임워크가 테스트 중 수행한 동작을 보여주는 많은 로그를 출력합니다: [date=2022-03-31 23:19:47 from=QA Tests] INFO -- Starting test: Create Merge request creation from fork can merge feature branch fork to mainline [date=2022-03-31 23:19:49 from=QA Tests] DEBUG -- has_element? :login_page (wait: 0) returned: true [date=2022-03-31 23:19:52 from=QA Tests] DEBUG -- filling :login_field with "root" [date=2022-03-31 23:19:52 from=QA Tests] DEBUG -- filling :password_field with "*****" [date=2022-03-31 23:19:52 from=QA Tests] DEBUG -- clicking :sign_in_button 테스트가 전혀 실행되지 않는 경우 # 이 섹션은 테스트를 로컬(예: GDK)에서 실행하며, gitlab-qa 가 아닌 gitlab/qa/ 폴더에서 실행하는 경우를 가정합니다. 예를 들어 Net::ReadTimeout 오류가 발생한다면, 브라우저가 지정된 URL을 로드하지 못하는 것일 수 있습니다: cd gitlab/qa bundle exec bin/qa Test::Instance::All http://localhost:3000 bundler: failed to load command: bin/qa (bin/qa) Net::ReadTimeout: Net::ReadTimeout with # 이 오류는 GitLab이 localhost 로 해석되지 않는 주소에서 실행 중인