2013-02-03 2 views
0

현재 내 개발 서버에는 나와 일부 다른 사용자가 푸시 할 수있는 맨발의 자식 저장소가 있습니다. 그러나 이제 PHPUnit 테스트를 서버 자체에 통합하고 싶습니다.git으로 원격 테스트 저장소가있는 경우

내 초기 아이디어는 tests이라는 이름의 각 저장소에 하위 디렉토리가있는 것이므로 VisualPHPUnit과 같은 테스트를 실행하여 서버의 "웹 사이트"를 통해 결과를 볼 수 있습니다. 그러나 원격 저장소가 노출 된 것처럼 보이는 것은 VPHPU에 실제로 테스트 디렉토리를 찾지 못하도록 지시 할 수는 없습니다.

더 좋은 방법이 있습니까? 어쩌면 모든 프로젝트에 대한 테스트를 포함하고 단지 베어가 아닌 다른 저장소를 가지고 있다고 생각하고있었습니다.하지만 그것은 git 표준에 어긋나며 아마도 문제를 일으킬 수 있습니다.

답변

1

Jenkins 또는 QuickBuild을 설정하는 것이 좋습니다. Jenkins는 오픈 소스이지만 QuickBuild는 그렇지 않습니다. 그러나 QuickBuild에는 무료 버전이 있으며 이전 버전보다 더 안정적이라는 것을 알았습니다. 둘 다 소스를 체크 아웃하고 테스트를 실행하며 결과를 게시 할 수 있습니다. 그리고 장기간에 걸쳐 제품 배치와 같은 더 많은 일을 할 수 있습니다.

현재의 아이디어를 제대로 작동시키지 못한다면 코드를 어딘가에서 체크 아웃하고 체크 아웃에 대한 테스트를 실행 한 후 알려진 위치에 결과를 게시하는 후 수신 후크가 필요합니다 . 당신은 몇 가지 생각을해야합니다. 예를 들어, 모든 지점을 테스트하고 싶습니까? 단 하나 뿐인가? 수신 후 후크는 업데이트되는 모든 분기에 대해 알려줄 것이므로 master 만 테스트하려는 경우 필터링해야 할 수도 있습니다. Pro Git에는 hooks에 대한 정보와 사용자 정의 방법이 나와 있습니다.

맨손 저장소를 사용하지 않는 것이 좋습니다. 벌거 벗은 저장소에 들어가는 것과 같은 일들을 처리해야합니다. 결국 Jenkins 나 QuickBuild가 도움이되기를 바랍니다.

+0

나는 젠킨스 (Jenkins)를 실행하고 싶지만, 자바 기반이며 내 VPS에 이상적이지는 않다. VPS를 무릎 꿇게하지 않는 자바가 아닌 jenkis와 같은 응용 프로그램이 있습니까? – n0pe

+0

http://en.wikipedia.org/wiki/Comparison_of_continuous_integration_software – michas

+0

VPS에서 [BuildBot] (http://trac.buildbot.net/)을 사용할 수 있었던 몇 사람을 알고 있습니다. 내가 확실한지 모르겠다. 맞습니다.이 도구들은 조금 무거워지기 쉽습니다. 오픈 소스 프로젝트가 있다면 [Travis CI] (https://travis-ci.org)를 사용해보십시오. 그들은 또한 [Travis Pro] (https://travis-ci.com)라고 불리는 개인 프로젝트 용 버전을 가지고 있습니다. 나는 비용이 후자를 위해 무엇인지 모르겠다 ... 베타로 지금은 아무것도 될 수 없다. – jszakmeister

1

gerrit으로 원격 자식 저장소를 관리하고 gerrit plugin을 사용하여 모든 자동 테스트를 실행하기 위해 jenkins을 설정하는 것이 좋습니다.

변경 사항을 gerrit로 푸시하면 gerrit이 jenkins에 알리고 jenkins는 새로 푸시 된 코드에 대한 모든 테스트를 실행합니다. 이제 gerrit는 테스트의 변경 사항과 결과를 보여주는 리뷰를 엽니 다. 그런 다음 젠킨스가 행복해지고 변경 사항이 정상적으로 보일 때 다른 개발자가 다시 가져올 수있는 공식 분기에 변경 사항을 병합합니다.

이 절차는 다소 복잡해 보일 수 있지만 성공적으로 테스트 된 코드 만 리포지토리에 저장되며 테스트를 중단하면 파기되었는지 확인할 수 있습니다. - 그것이 자동 테스트의 핵심입니다. ;)

관련 문제