회귀 테스트는 이미 설치되고 토토 캔중인 서버에 대해 또는 빌드 트리 내에 임시 설치를 사용하여 토토 캔할 수 있습니다. 또한가 있습니다.“병렬”및 a“순차적”테스트 실행 모드. 순차적 메소드는 각 테스트 스크립트만으로 실행되는 반면 병렬 메소드는 여러 서버 프로세스를 시작하여 테스트 그룹을 병렬로 실행합니다. 병렬 테스트는 과정 간 통신과 잠금이 올바르게 작동한다는 확신을 추가합니다.
구축 후 병렬 회귀 테스트를 실행하려면 설치하기 전에 다음을 입력하십시오.
확인
최상위 디렉토리에서. (또는 변경할 수 있습니다src/test/regress
그리고 그곳에서 명령을 토토 캔하십시오.) 결국에는 다음과 같은 것을 볼 수 있습니다.
=====================
모든 193 개의 테스트가 통과되었습니다.
=======================
또는 그렇지 않으면 어떤 테스트가 실패한 지에 대한 메모입니다. 보다PostgreSQL : 문서 : 15 : 33.2. 스포츠 토토 평가a 전“실패”심각한 문제를 나타냅니다.
이 테스트 방법은 임시 서버를 토토 캔하기 때문에 서버가 루트로 시작하지 않기 때문에 루트 사용자로 빌드를 수행하면 작동하지 않습니다. 권장 절차는 빌드를 루트로 수행하지 않거나 설치를 완료 한 후 테스트를 수행하는 것입니다.
구성된 경우PostgreSQL오래된 위치에 설치하려면PostgreSQL설치가 이미 존재하고 수행확인
새 버전을 설치하기 전에 새 프로그램이 이미 설치된 공유 라이브러리를 사용하려고 시도하기 때문에 테스트가 실패 할 수 있습니다. (일반적인 증상은 정의되지 않은 기호에 대한 불만입니다.) 이전 설치를 덮어 쓰기 전에 테스트를 실행하려면를 구축해야합니다.구성-disable-ratp
. 그러나 최종 설치 에이 옵션을 사용하는 것이 좋습니다.
병렬 회귀 테스트는 사용자 ID에서 몇 가지 프로세스를 시작합니다. 현재 최대 동시성은 20 개의 병렬 테스트 스크립트이며, 이는 40 개의 프로세스를 의미합니다. 서버 프로세스와 APSQL각 테스트 스크립트에 대한 프로세스. 따라서 시스템이 프로세스 수에 대한 사용자 당 한계를 시행하는 경우이 한계가 50 개 이상인지 확인하면 병렬 테스트에서 임의의시기 실패가 발생할 수 있습니다. 한계를 높일 수있는 위치에 있지 않은 경우를 설정하여 평행의 정도를 줄일 수 있습니다.max_connections
매개 변수. 예를 들어:
make max_connections = 10 check
동시에 10 번의 테스트를 토토 캔하지 않습니다.
설치 후 테스트를 토토 캔하려면 (참조PostgreSQL : 문서 : 15 : 17 장. 소스 코드에서 메이저 토토 사이트), 데이터 디렉토리를 초기화하고 다음에 설명 된대로 서버를 시작합니다PostgreSQL : 문서 : 15 : 19 장 스포츠 토토 베트맨 설정 및 작동, 다음 유형 :
설치 체크 만들기
또는 병렬 테스트 :
InstallCheck-Parallel 만들기
테스트는 달리 지시되지 않는 한 로컬 호스트의 서버에 연락 할 것으로 예상됩니다.pghost
andpgport
환경 변수. 테스트는이라는 데이터베이스에서 토토 캔됩니다.회귀
; 이 이름의 기존 데이터베이스는 삭제됩니다.
테스트는 역할, 테이블 스페이스 및 구독과 같은 일부 클러스터 전체 객체를 일시적으로 생성합니다. 이 객체는로 시작하는 이름이 있습니다.회귀 _
. 사용에주의하십시오InstallCheck
실제 글로벌 객체가 그런 방식으로 표시된 설치가있는 모드.
the확인
and설치 체크 만들기
명령 만 토토 캔“Core”회귀 테스트.PostgreSQL서버. 소스 배포에는 많은 추가 테스트 스위트가 포함되어 있으며 대부분은 선택적 절차 언어와 같은 애드온 기능과 관련이 있습니다.
핵심 테스트를 포함하여 구축 된 모듈에 적용 할 수있는 모든 테스트 스위트를 토토 캔하려면 빌드 트리의 맨 위에 이러한 명령 중 하나를 입력하십시오.
체크 세계 만들기 설치-위로 만들기
이 명령은 이전에 설명한 것처럼 임시 서버 또는 이미 설치된 서버를 사용하여 테스트를 토토 캔합니다.확인
and설치 체크 만들기
. 다른 고려 사항은 각 방법에 대해 이전에 설명한 것과 동일합니다. 참고체크 월드 만들기
각각의 테스트 된 모듈에 대해 별도의 인스턴스 (임시 데이터 디렉토리)를 빌드하므로보다 더 많은 시간과 디스크 공간이 필요합니다.InstallCheck-World 만들기
.
여러 CPU 코어가 있고 단단한 운영 시스템 제한이없는 최신 기계의 경우 병렬 처리로 실질적으로 더 빠르게 진행할 수 있습니다. 대부분의 PostgreSQL 개발자가 실제로 모든 테스트를 실행하는 데 사용하는 레시피는와 같습니다.
체크 세계 만들기 -j8/dev/null
with-j
사용 가능한 코어 수보다 가까이 또는 조금 더 제한. 폐기Stdout성공을 확인하고 싶을 때 흥미롭지 않은 채터를 제거합니다. (실패의 경우Stderr메시지는 일반적으로 자세히 살펴볼 곳을 결정하기에 충분합니다.)
또는 입력하여 개별 테스트 스위트를 토토 캔할 수 있습니다확인 make
또는설치 체크 만들기
빌드 트리의 적절한 서브 디렉토리. 명심하십시오설치 체크 만들기
코어 서버뿐만 아니라 관련 모듈을 설치했다고 가정합니다.
이 방법으로 호출 할 수있는 추가 테스트에는 다음이 포함됩니다.
선택적인 절차 언어에 대한 회귀 테스트. 이들은 아래에 있습니다SRC/PL
.
회귀 테스트에 대한Contrib
모듈, 아래에있는 모듈Contrib
. 전부는 아닙니다Contrib
모듈에는 테스트가 있습니다.
인터페이스 라이브러리에 대한 회귀 테스트,SRC/인터페이스/libpq/test
andSRC/인터페이스/ecpg/test
.
핵심 지원 인증 방법에 대한 테스트SRC/TEST/AUTHENTICATION
. (추가 인증 관련 테스트는 아래를 참조하십시오.)
동시 세션의 스트레스 행동 테스트SRC/TEST/INLEPONTION
.
충돌 복구 및 물리 복제 테스트,SRC/TEST/Recovery
.
논리 복제 테스트,src/test/subscription
.
아래에 위치한 클라이언트 프로그램 테스트SRC/BIN
.
사용시InstallCheck
모드,이 테스트는 이름이 포함 된 테스트 데이터베이스를 생성하고 파괴합니다.회귀
, 예를 들어pl_regression
또는Contrib_Regression
. 사용에주의하십시오InstallCheck
그 방식으로 이름이없는 데이터베이스가없는 설치가있는 모드.
이 보조 테스트 스위트 중 일부는 설명 된 탭 인프라를 사용합니다PostgreSQL : 문서 : 15 : 33.4. 탭 토토. 탭 기반 테스트는 PostgreSQL이 옵션으로 구성된 경우에만 실행됩니다.-enable-tap-tests
. 이것은 개발에 권장되지만 적절한 Perl 설치가 없으면 생략 할 수 있습니다.
일부 테스트 스위트는 특수 소프트웨어가 필요하거나 리소스 집약적이기 때문에 다중 사용자 시스템에서 토토 캔되는 것이 안전하지 않기 때문에 기본적으로 토토 캔되지 않습니다. 설정하여 추가로 토토 캔할 테스트 스위트를 결정할 수 있습니다make
또는 환경 변수pg_test_extra
예를 들어 공백 분리 목록으로 :
체크 월드 MATE PG_TEST_EXTRA = 'KERBEROS LDAP SSL'
다음 값은 현재 지원됩니다.
Kerberos
|src/test/kerberos
. 이를 위해서는 MIT Kerberos 설치가 필요하며 TCP/IP 청취 소켓을 엽니 다.
ldap
|src/test/ldap
. 이것은 필요합니다OpenLDap설치 및 열린 TCP/IP 청취 소켓.
SSL
테스트 스위트를 토토 캔합니다src/test/ssl
. 이것은 TCP/IP 청취 소켓을 열어줍니다.
Wal_Consistency_checking
용도Wal_Consistency_checking = all
아래에서 특정 테스트를 토토 캔하는 동안SRC/TEST/Recovery
. 자원 집약적이기 때문에 기본적으로 활성화되지 않습니다.
현재 빌드 구성에서 지원하지 않는 기능에 대한 테스트는 언급 된 경우에도 토토 캔되지 않습니다pg_test_extra
.
또한 테스트가 있습니다.SRC/TEST/MODULES
체크 월드 만들기
그러나InstallCheck-World 만들기
. 이는 비 생산 확장을 설치하거나 생산 설치에 바람직하지 않은 것으로 간주되는 다른 부작용이 있기 때문입니다. 사용할 수 있습니다설치
and설치 체크 만들기
원하는 경우 해당 하위 디렉토리 중 하나에서는 비 테스트 서버를 사용하는 것이 좋습니다.
기본적으로 임시 설치를 사용한 테스트 현재 환경에서 정의 된 로케일과 해당 데이터베이스를 인코딩하는 해당 데이터베이스를 사용하여initdb
. 예를 들어 적절한 환경 변수를 설정하여 다른 로케일을 테스트하는 것이 유용 할 수 있습니다.
점검 lang = c 확인 lc_collate = en_us.utf8 lc_ctype = fr_ca.utf8
구현 이유, 설정LC_ALL
이 목적으로는 효과가 없습니다. 다른 모든 로케일 관련 환경 변수는 작동합니다.
기존 설치에 대해 테스트 할 때 로케일은 기존 데이터베이스 클러스터에 의해 결정되며 테스트 실행에 대해 별도로 설정할 수 없습니다..
변수를 설정하여 명시 적으로 인코딩하는 데이터베이스를 선택할 수도 있습니다인코딩
, 예 :
확인 make lang = c 인코딩 = euc_jp
이 방법으로 데이터베이스를 인코딩하는 데 일반적으로 로케일이 C 인 경우에만 의미가 있습니다. 그렇지 않으면 인코딩은 로케일에서 자동으로 선택되며 로케일과 일치하지 않는 인코딩을 지정하면 오류가 발생합니다.
데이터베이스 인코딩은 임시 또는 기존 설치에 대한 테스트를 위해 설정할 수 있지만 후자의 경우 설치의 로케일과 호환되어야합니다.
회귀 테스트 스위트를 실행할 때 사용할 사용자 정의 서버 설정pgoptions
환경 변수 (이를 허용하는 설정의 경우) :
PGOPTIONS = "-C force_parallel_mode = 회귀 -C work_mem = 50MB"를 확인합니다.
임시 설치에 대해 실행할 때 사전 작성된 것을 제공하여 사용자 정의 설정을 설정할 수도 있습니다postgresql.conf
:
echo 'log_checkpoints = on' test_postgresql.conf echo 'work_mem = 50mb' test_postgresql.conf extra_regress_opts = "-temp-config = test_postgresql.conf" 확인하십시오.
추가 로깅을 활성화하거나 리소스 제한 조정 또는 추가 런타임 확인을 활성화하는 데 유용 할 수 있습니다.debug_discard_caches.
Core Regression Test Suite에는 기본적으로 실행되지 않는 몇 가지 테스트 파일이 포함되어 있습니다. 플랫폼에 의존하거나 실행하는 데 시간이 오래 걸릴 수 있기 때문입니다. 변수를 설정하여 이러한 추가 테스트 파일 또는 기타 추가 테스트 파일을 실행할 수 있습니다extra_tests
. 예를 들어,를 토토 캔하려면numeric_big
테스트 :
extra_tests = numeric_big 확인합니다.
문서에 올바른 것이 없으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면