Jenkins: Alat Integrasi dan Penghantaran Berterusan untuk Projek PHP
Jenkins, pelayan automatik sumber terbuka yang memainkan peranan utama dalam integrasi berterusan dan penghantaran berterusan projek PHP, dapat mengesan dan menyelesaikan pepijat dalam masa nyata dan terus memberi maklum balas kod peningkatan kualiti kod.
Kuasa integrasi Jenkins dengan alat PHP
Jenkins serasi dengan pelbagai alat projek PHP, termasuk CodesNiffer PHP, PHP MD, PHP CPD, PHP bergantung, PHPLOC, PHPUNIT, dan PHPDOX, dan setiap alat menyediakan pandangan analisis kod unik dan metrik. Kelebihan Jenkins ialah ia dapat menjana carta dan gambaran keseluruhan, membentangkan masalah dengan lebih cekap daripada pengambilan baris arahan, menjadikannya lebih mudah untuk mengenal pasti dan menyelesaikan masalah dalam kod anda.
Di samping alat yang telah disediakan, Jenkins mengumpul maklumat tambahan seperti gambaran keseluruhan CodesNiffer PHP, PHP MD, dan pelanggaran CPD PHP, serta gambaran keseluruhan "perubahan" yang menunjukkan semua yang dilakukan antara setiap binaan.
Tafsiran Jenkins Hasil: Pandangan Projek dan Membina Lihat
Hasil Jenkins datang dari alat yang berbeza dan akan diletakkan di lokasi yang berbeza di Jenkins GUI. Kami akan melayari dua halaman yang berbeza. Pertama ialah halaman paparan projek, dengan nama projek yang dipaparkan di bahagian atas. Pada halaman ini, anda boleh mendapatkan gambaran keseluruhan projek anda dan anda boleh membandingkan pelbagai binaan. Anda boleh mengakses halaman ini dengan mengklik item dari halaman Gambaran Keseluruhan lalai. Sebagai tambahan kepada halaman paparan projek, kami juga mempunyai halaman Build View. Anda boleh menavigasi ke halaman ini dengan mengklik nombor binaan di bar sisi. Di sini anda boleh melihat pelbagai butiran mengenai binaan ini.
Artikel ini akan memperkenalkan setiap alat dan Laporan Laporan Langkah demi Langkah. Akhirnya, kami juga akan melihat beberapa butiran tambahan Jenkins telah dikumpulkan untuk kami. Oleh kerana kami membina projek yang sama beberapa kali, garis lurus akan dipaparkan dalam carta kami. Dalam projek sebenar, carta akan berubah -ubah.
php codesniffer
CodesNiffer adalah alat untuk memeriksa sama ada kod anda mematuhi set peraturan biasa atau set peraturan tersuai anda sendiri. Dalam contoh ini, kami mengkonfigurasi alat yang ingin kami uji terhadap PSR2. Kami menentukan ini dalam fail Build.xml.
<arg value="--standard=PSR2" />
Pada halaman Gambaran Keseluruhan, anda akan melihat carta yang dipanggil "Trend Checkstyle". Carta ini mewakili bilangan isu PSR2 dalam setiap binaan. Dalam kod kami, kami hampir patuh sepenuhnya, jadi carta kami hanya menunjukkan satu masalah.
Terdapat juga carta di bawah halaman yang menggabungkan data dari 3 alat. Codesniffer adalah salah satu daripada mereka.
Untuk melihat di mana masalahnya, anda boleh mengklik pada "Peringatan Semak" di menu kiri binaan terkini, atau klik pada binaan tertentu dan kemudian klik pada "peringatan checkstyle" untuk binaan khusus itu.
Pada halaman ini, anda dapat melihat keterangan masalah dengan jelas. Ambil perhatian bahawa anda boleh menggunakan pelbagai penapis. Di bar atas, anda dapat melihat dengan jelas berapa banyak isu yang baru dan berapa banyak yang telah ditetapkan. Anda boleh mengklik pada nombor untuk melihat perubahan dengan jelas. Dalam ringkasan, anda dapat melihat soalan dengan cepat yang diklasifikasikan oleh keutamaan.
php md
MD bermaksud pengesan kekacauan. Alat ini cuba menunjukkan beberapa isu dalam kod. Ini boleh menjadi bug yang berpotensi, kod yang tidak digunakan, atau pendekatan rumit. Untuk senarai lengkap cek yang ada, anda boleh melihat halaman ini. Sila ambil perhatian bahawa kami tidak memeriksa setiap peraturan. Anda boleh menentukan peraturan untuk memeriksa fail phpmd.xml.
Seperti PHP CodesNiffer, kita melihat carta pada halaman paparan projek yang menunjukkan bagaimana pengesanan kekeliruan kami berlangsung dari masa ke masa.
Di bahagian atas, anda dapat melihat lagi berapa banyak isu yang baru dan berapa banyak isu yang ditetapkan. Selain itu, anda dapat melihat keutamaan setiap soalan.
Di halaman butiran, anda boleh mendapatkan lebih banyak maklumat mengenai tempat untuk mencari masalah. Terdapat banyak tab yang boleh digunakan untuk memberikan maklumat yang sama dengan cara yang berbeza. Sebagai contoh, anda boleh mengklik pada "Jenis" untuk mengetahui lebih lanjut mengenai setiap jenis.
seperti yang anda lihat, "UnusedFormalParameter" adalah masalah terbesar kami. Dengan mengklik padanya, kita akan melihat lagi fail mana yang mempunyai parameter yang tidak digunakan.
php cpd
CPD bermaksud pengesan tampal salin. Alat ini menganalisis semua kod dan mencari beberapa baris pendua. Sekiranya anda mempunyai banyak baris pendua, ini mungkin bermakna anda perlu menulis semula bahagian tertentu supaya logik dikongsi antara pelbagai kelas. Pada halaman paparan projek, kami akan melihat kemajuan keseluruhan dalam semua membina lagi.
Seperti yang anda lihat, terdapat 58 baris dalam kelas CompanyFilter yang juga terletak di kelas UserFilter dan TimeCategoryFilter. Berdasarkan data ini, anda boleh memutuskan bahawa anda memerlukan beberapa jenis perkhidmatan asas atau pelaksanaan yang mengendalikan kebanyakan semua 3 kelas. Penyelesaiannya bergantung pada keadaan anda, CPD PHP hanya memberitahu anda di mana ia mendapati masalahnya.
php bergantung
PHP bergantung mungkin metrik yang paling sukar difahami. PHP bergantung melakukan analisis kod statik pada asas kod anda. Ia menghasilkan 2 imej dan halaman gambaran keseluruhan. Anda mungkin mendapati bahawa di bahagian atas halaman paparan projek, terdapat beberapa HTML yang harus memaparkan imej.
Hakikat bahawa imej tidak dipaparkan bermakna anda perlu menukar suis dalam konfigurasi Jenkins. Pergi ke "Mengurus Jenkins" dan pergi ke "Konfigurasi Keselamatan Global". Terdapat kotak pemilihan yang boleh anda gunakan untuk mengkonfigurasi "Formatter Markup". Tetapkannya ke "HTML Selamat" dan simpan tetapan anda. Jika anda kini kembali ke halaman Paparan Projek, anda akan melihat bahawa HTML telah ditukar kepada dua imej.
anda boleh mendapatkan lebih banyak maklumat dengan mengklik pada binaan khusus dan memilih "JDepend" dalam menu di sebelah kiri. Anda akan mendapat gambaran keseluruhan berikut.
Penjelasan halaman ini juga agak besar dan kompleks, jadi saya mengarahkan anda ke dokumentasi rasmi di mana semuanya dijelaskan.
phploc
Carta kedua menunjukkan tahap omong kosong anda. Crap bermaksud perubahan analisis risiko dan ramalan. Crap dikira dengan memeriksa kerumitan kod dan jumlah ujian yang dilaksanakan pada kod. Jika anda melayari peraturan PHP MD, anda mungkin menyedari bahawa PHP MD juga dapat memeriksa kerumitan kod, tetapi tidak menganggap ujian unit. Sila baca di sini untuk mengetahui bagaimana PHP MD mengira kerumitan anda.
Carta akhir menunjukkan berapa banyak ujian yang berjaya dan berapa banyak yang gagal. Dalam kes ini, mereka semua berjaya.
Di menu sidebar kiri kami, kami mempunyai dua projek yang dihasilkan oleh PHPUNIT. Yang pertama adalah omong kosong. Pada halaman ini, anda dapat melihat gambaran keseluruhan beberapa carta yang menunjukkan betapa tinggi tahap omong kosong semasa anda. Di bahagian bawah, anda benar -benar melihat kaedah mana yang ditandakan sebagai omong kosong. Anda akan melihat lajur yang menunjukkan liputan dan kerumitan.
item menu kedua ialah "Laporan HTML Clover". Dalam halaman ini, anda boleh menggariskan dengan direktori berapa banyak kandungan yang ditimpa oleh ujian unit anda.
Dalam contoh ini, kita dapat melihat dengan jelas bahawa bahagian pernyataan IF tidak dipanggil oleh ujian unit. Ini betul dalam kes ini. Kaedah ini hanya melakukan permintaan, bukan permintaan pos. Jika kami melaksanakan permintaan pos dalam ujian unit, pernyataan ini jika akan ditandakan hijau. Dengan cara ini, anda boleh dengan mudah menemui mana -mana bahagian yang hilang dari ujian unit anda.
phpdox
Terdapat banyak alat untuk menjana dokumentasi berdasarkan kod dan komen anda. PHPDOX adalah alat lain yang boleh melaksanakan tugas ini untuk anda. Dalam menu di sebelah kiri, anda boleh mengklik pada "Dokumentasi API" untuk pergi ke dokumen anda. Manfaat phpDox adalah bahawa ia juga termasuk hasil semua alat lain.
Dengan navigasi di bahagian atas, anda boleh mendapatkan gambaran keseluruhan semua kelas, tetapi anda juga boleh menggali satu kelas dan mendapatkan gambaran keseluruhan semua kaedah dan penerangan. Anda juga boleh melihat sejarah fail dan kod sumber.
Halaman -halaman lain
Di samping alat yang kami sediakan dalam artikel sebelumnya, Jenkins akan mengumpulkan maklumat tambahan untuk anda. Plugin pelanggaran yang kami pasang mencipta halaman tambahan yang memaparkan gambaran keseluruhan CodesNiffer PHP, PHP MD, dan PHP CPD. Anda juga boleh mengklik pada binaan khusus dan mencari item menu yang dinamakan "Perubahan" dalam menu di sebelah kiri. Jika anda pergi ke halaman ini, anda akan melihat gambaran keseluruhan semua komitmen yang dibuat antara binaan sebelumnya dan binaan ini. Sekiranya tiada perubahan dibuat, halaman akan kosong. Kesimpulan
(bahagian FAQ ditinggalkan di sini kerana kandungan bahagian FAQ sangat berulang -ulang dengan kandungan utama artikel dan lebih lama, untuk mengelakkan pertindihan, ia akan ditinggalkan di sini.)
Atas ialah kandungan terperinci Menganalisis projek PHP dengan Jenkins. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!