2011-12-07 2 views
0

새 Jenkins 서버로 앤트 빌드를 옮깁니다. SVN에 액세스하고 컴파일 할 수 있습니다. 단위 테스트를 시작할 때까지 모든 것이 훌륭합니다. 테스트 중 일부는 실행할 수 있도록 데이터베이스에 액세스해야합니다.Jenkins는 빌드 후 유닛 테스트 중에 데이터베이스에 연결할 수 없습니다.

젠킨스가 실행되는 서버에 로그인했으며 데이터베이스 포트에서 텔넷을 사용하여 경로가 열려 있음을 알 수 있습니다. (IT 사람들은 경로가 열려 있다고 말합니다.) 빌드를 데이터베이스를 찾을 수 없도록 구성 파일을 엉망으로 만들 때 로컬에서 문제를 재현 할 수 있기 때문에 데이터베이스 문제라는 것을 알고 있습니다.

제 문제는 이것입니다. 젠킨스가 왜 데이터베이스에 연결할 수 없는지 말해줘야합니다. 나는 이것을하는 방법을 알아낼 수 없었다. 콘솔 출력은 단순히 테스트를 영원히 시도하는 것을 보여줍니다. 모든 제안 사항에 감사드립니다.

+1

정확히 데이터베이스에 액세스하려고합니까? 단위 테스트인데 왜 거기에 몇 가지 로그를 추가 할 수 없습니까? 로컬 컴퓨터에서 테스트를 실행할 때 (Jenkins를 통해 로컬로 설치할 수 있음) 어떻게됩니까? –

+0

두 가지 좋은 점이 있습니다. 그것들을 살펴 봅시다. – HenryAdamsJr

답변

0

DB 매개 변수를 Ant에서 junit 대상으로 전달합니까? 그렇다면 -v 매개 변수를 jenkins 구성의 개미 단계에 추가하여 & 여분의 로깅을 얻으려면 설정중인 DB 매개 변수를 확인하십시오.

또는 테스트에서 DB 매개 변수를 직접로드합니까? 읽는 방법에 따라 클래스 경로 나 경로 문제가있을 수 있습니다. 이 경우 경로, 클래스 경로 및 기타 관련 변수를 테스트에 기록하십시오.

junit 작업에는 timeout 매개 변수가 있습니다.이 매개 변수를 영구히 정지시키지 않으려면 설정할 수 있습니다.

마지막으로 jenkins 호스트에 로그온하고 실행 테스트의 스레드 덤프를 트리거 할 수 있습니다. 이것은 kill -3 신호를 java 프로세스 (* nix)에 보내거나 windows에서 jenkins를 실행 중이며 JVM이 너무 오래 않았 으면 jstack을 실행할 수 있습니다. 결과 스택 추적 (Jenkins 빌드 로그에 나타나야 함)은 약간의 통찰력으로 이어질 수 있습니다.

+1

좋은 디버깅 기술을 많이 가지고 있기 때문에이 대답을 수락합니다. 내 문제는 실제로 매우 간단했습니다. Jenkins 서버가 DB가 더 이상 동일한 네트워크에없는 새로운 환경으로 이동 한 이후에 구성 파일에 정규화 된 도메인 이름이 필요했습니다. 우리는 다른 환경에 대해 다른 설정 파일을 가지고 있습니다. 그리고 처음에 잘못된 파일을 편집 했으므로 여기에 내가 올린 요지까지갔습니다. 올바른 파일을 편집하고 나면 완벽하게 작동했습니다. – HenryAdamsJr

관련 문제