2008-12-01 13 views
8

Szukam kompletnego rozwiązania do automatycznego "budowania" i testowania aplikacji PHP. Natknąłem się na PhpUnderControl, rozwiązanie do uruchamiania zautomatyzowanych buildów aplikacji stworzonych wokół Cruise Control.Projekty Cruise Control i PHP

Niestety, PhpUC wciąż znajduje się na wczesnym etapie rozwoju i nie mogę go uruchomić na Windows Box.

Po kilku godzinach próbowania zrezygnowałem z phpUc. Teraz próbuję używać tylko tempomatu. Działa dobrze, jeśli chodzi o uruchamianie całego procesu kompilacji. Każde polecenie, które umieszczam w pliku budującym mrówki, działa dobrze.

Jedyny problem, jaki mam, to że Cruise Control nie połączy logów z kompilacji uruchomionych w plik dziennika projektu, dlatego nie widzę żadnych wyników kompilacji. Ale przykładowy projekt w tempomatu działa dobrze, dzienniki dla kompilacji są scalane w dzienniku projektu.

Zastanawiam się, czy Cruise Control jest w stanie scalić logi utworzone przez PHPUnit (w formacie XML) do dziennika projektu lub czy działa tylko w plikach JUnit Javy. Czy ktoś próbował używać Cruise Control samodzielnie w projekcie php?

tutaj jest odcinek dziennika konfiguracji projektu (config.xml):

<log dir="logs/${project.name}"> 
<merge dir="projects/${project.name}/build/logs/"/> 
</log> 

Jest + ścieżki kopia wklejony zmieniona z przykładowego projektu Tempomat za.

Wszelkie myśli, które ktoś chce.

Dzięki

Odpowiedz

2

Zastanawiam się, czy tempomat jest stanie połączyć rejestry utworzone przez PHPUnit (w formacie XML) do dziennika projektu lub jest to działa dla plików JUnit Javy Only.

CC połączy każdy plik xml, na który wskażesz. Kiedy mówisz, że scalanie plików nie działa, czy otrzymujesz błąd scalania ich lub czy wyniki testu nie pojawiają się na stronie wyników? Jeśli spojrzysz na plik dziennika kompilacji, czy wyniki testów są połączone?

Jednym z problemów, które możesz zauważyć, jest to, że pliki .xsl w aplikacji do raportowania jsp oczekują, że wyniki testów będą miały strukturę, którą tworzy zadanie ant junit. Może się zdarzyć, że scalasz pliki, ale .xsl nie wie, jak wyświetlić wyniki.

Ale myślę, że istnieje proste rozwiązanie. Projekt PhpUnderControl dostarcza plik phpunit.jsp. Myślę, że jeśli dodasz to do istniejącej instalacji CC, będziesz mógł zobaczyć wyniki testu. Możesz dodać phpunit.jsp do zakładek całkiem łatwo; wystarczy spojrzeć na main.jsp i powinno to być oczywiste.

Jeśli masz jakieś dodatkowe pytania, polecam CruiseControl users mailing list.

(I nie był używany CC nad projektem PHP, ale jestem jednym z committers CC).

+0

Dzięki za poświęcenie czasu na odpowiedź na moje pytanie, Co rozumiem przez "scalanie nie działa" jest to, że po pierwszym kompilacji nie są tworzone żadne pliki dziennika w katalogu cc/logs/project. Zacząłem od nowa i utworzyłem nowy plik config.xml, który sprawił, że działał. Przypuszczam, że w jakiś sposób zepsułem plik konfiguracyjny. – CountZero

0

I odkryli, że CruiseControl scalić tylko logi zawierające wyniki badań, gdy próba nie powiedzie się.

Kiedy celowo złamałem test, wyniki zostały scalone w dzienniku i pokazane na pulpicie nawigacyjnym CruiseControl.

Czy to może być twój problem?

0

Próbowaliśmy używać PHPUc z CC i nie mogliśmy uzyskać poprawnego działania. Eksperymentowaliśmy z prostą wersją CC, ale stwierdziliśmy, że trudno jest tam uzyskać uwierzytelnienie (jesteśmy dystrybuowani, więc nasze raporty byłyby otwarte dla świata, gdybyśmy go nie zabili - nie mogliśmy tego zrozumieć.)

, obecnie używamy Hudsona jako naszego silnika CI i Phing jako naszego narzędzia do budowania. Działa dobrze. Mamy raporty dotyczące zasięgu kodu prosto z PHPUnit (które Hudson wciąż nazywa "zasięgiem koniczyny" ze świata Java, ale hej to tylko nazwa linku i wiemy, co to znaczy).

Hudson był łatwy do skonfigurowania i wydaje się działać ze wszystkim, czego potrzebujesz do PHP.

+0

Odkąd to zamieściłem, faktycznie zrobiliśmy PHPuc pracując z tempomatem i wszystko jest bardzo płynne. Nie jestem facetem, który to zrobił, ale najwyraźniej można to zrobić. Mamy raporty dotyczące zasięgu kodu z działającymi PHPUnit, PMD, CodeSniffer i wykresami metryk. A więc jest nadzieja. –

1

phpunit, phpUnderControl i CC działają świetnie!

Uzyskania testy w zakładce (phpUnderControl CC) w pliku xml phpunit Sprawdź, czy plik dziennika phpunit generowany jest w prawidłowej ścieżce

<log type="junit" target="...../cruisecontrol-bin-2.8.4/projects/<projname>/build/logs/logfile.xml" logIncompleteSkipped="false"/> 

Po logfile.xml jest generowany na podstawie testów phpunit są wyświetlane na karcie testów zarówno phpUnderControl, jak i CC.