8 mesti mempunyai alat jaminan kualiti php
Gambaran Keseluruhan Alat Jaminan Kualiti PHP: Panduan Praktikal untuk Meningkatkan Kualiti Kod PHP
Artikel ini menyoroti alat jaminan kualiti PHP utama seperti phpunit, timun, atoum, selenium, senja, kahlan dan php, masing -masing menyediakan keupayaan peningkatan kualiti ujian dan kod yang unik. Di samping itu, perkhidmatan integrasi berterusan (CI) seperti PHPCI, Travisci, Semaphoreci, dan Jenkins adalah kritikal untuk projek pasukan kerana mereka secara automatik menyemak kod sebelum ia digabungkan ke repositori projek rasmi.
Semasa membina budaya ujian adalah mencabar, ia adalah penting untuk kualiti kod. Menggunakan alat di atas boleh membantu pemaju memulakan ujian dan memastikan kualiti amalan pengekodan PHP mereka.
(artikel popular ini dikemas kini pada 30 Jun 2017 untuk memasukkan teknologi dan alat terkini.)
Untuk menyampaikan kod berkualiti tinggi, kita mesti mempertimbangkan ujian semasa pengekodan (jika tidak pembangunan yang didorong oleh ujian (TDD). Walau bagaimanapun, memandangkan pelbagai alat ujian PHP, sukar untuk membuat pilihan! Meneroka PHP adalah pengembaraan yang menyeronokkan, tetapi sukar untuk membentuk kotak alat yang tidak akan terlalu berat!
Artikel ini akan memberi tumpuan kepada alat ujian yang paling popular dan telah dikemas kini untuk mencerminkan status semasa alat jaminan kualiti pada tahun 2017.
Kod yang belum diuji adalah kod yang dipersoalkan.
PHPUnit adalah rangka kerja ujian pilihan untuk PHP. Ia dicipta pada tahun 2004 oleh Sebastian Bergmann dan kini mempunyai versi 6 dan memerlukan Php 7.
Kami mempunyai banyak tutorial mengenainya tidak lama lagi.
Cucumber
Timun adalah rangka kerja untuk membuat ujian penerimaan berdasarkan spesifikasi. Ia terkenal dengan teks yang dihasilkan secara deskriptif yang boleh dibaca seperti bahasa Inggeris biasa. Pelaksanaan PHP rasmi Timun adalah Behat.
Kami mempunyai tutorial untuk memulakan SitePoint di sini. Contoh -contoh berikut yang dikutip dari dokumentasi menggambarkan dengan baik bagaimana ekspresi yang dikehendaki ini dinyatakan.
atoum
<code>Feature: Listing command In order to change the structure of the folder I am currently in As a UNIX user I need to be able see the currently available files and folders there Scenario: Listing two files in a directory Given I am in a directory "test" And I have a file named "foo" And I have a file named "bar" When I run "ls" Then I should get: """ bar foo """</code>
Atoum adalah satu lagi rangka kerja ujian unit untuk PHP. Ia adalah pakej mandiri yang boleh anda pasang melalui github, komposer, atau phar executables.
Jika anda ingin mengetahui lebih lanjut mengenai menggunakan Atoum untuk ujian unit PHP, anda boleh membaca tutorial ini.
<code>$this->integer($classInstance->myMethod()) ->isEqualTo(10); $this->string($classInstance->myMethod()) ->contains("Something heppened"); </code>
Selenium adalah alat untuk ujian penyemak imbas automatik (ujian integrasi dan penerimaan). Ia menukar ujian ke dalam perintah API penyemak imbas dan menegaskan hasil yang diharapkan. Ia menyokong penyemak imbas yang paling banyak.
kita boleh menggunakan sambungan untuk menggunakan selenium dengan phpUnit.
<code>Feature: Listing command In order to change the structure of the folder I am currently in As a UNIX user I need to be able see the currently available files and folders there Scenario: Listing two files in a directory Given I am in a directory "test" And I have a file named "foo" And I have a file named "bar" When I run "ls" Then I should get: """ bar foo """</code>
ini adalah contoh mudah:
<code>$this->integer($classInstance->myMethod()) ->isEqualTo(10); $this->string($classInstance->myMethod()) ->contains("Something heppened"); </code>
Jika anda ingin mengetahui lebih lanjut mengenai ujian dengan phpunit dan selenium, anda boleh membaca siri artikel ini.
senja
<code>composer require --dev phpunit/phpunit composer require --dev phpunit/phpunit-selenium </code>
Kahlan
Kahlan adalah unit ujian yang berfungsi sepenuhnya dan BDD yang menggunakan sintaks menggambarkan-it.
Seperti yang dapat dilihat dari sintaks di atas, ia sama dengan ujian Behat. Kahlan menyokong stub dan simulasi luar kotak, tanpa kebergantungan, liputan kod, pelaporan, dll.
<code>class UserSubscriptionTest extends PHPUnit_Extensions_Selenium2TestCase { public function testFormSubmissionWithUsername() { $this->byName('username')->value('name'); $this->byId('subscriptionForm')->submit(); } } </code>
php_testability
<code>class LanguagesControllerTest extends DuskTestCase { public function testCreate() { $this->browse(function (Browser $browser) { $user = $this->getAdminUser(); $browser->loginAs($user) ->visit('/panel/core/languages') ->click('#add') ->assertPathIs('/panel/core/languages/create') ->type('name', 'Arabic') ->select('direction', 'rtl') ->press('Submit') ->assertSee('Language: Arabic') ->assertSee('ar') ->assertSee('rtl') ->assertSee('Language created'); }); } } </code>
Pakej terakhir yang disebutkan adalah kesesuaian PHP. Ia adalah alat analisis statik yang memberitahu anda tentang isu -isu kesesuaian dalam program anda dan menghasilkan laporan terperinci.
Pakej pada masa ini tidak mempunyai versi yang ditandakan yang boleh anda harapkan, tetapi anda boleh menggunakannya dengan selamat dalam pembangunan. Anda boleh memasangnya melalui komposer:
kemudian jalankan seperti ini:
<code>describe("Positive Expectation", function() { it("expects that 5 > 4", function() { expect(5)->toBeGreaterThan(4); }); }); </code>
Perkhidmatan Integrasi Berterusan (CI)
<code>it("makes a instance double with a parent class", function() { $double = Double::instance(['extends' => 'Kahlan\Util\Text']); expect(is_object($double))->toBe(true); expect(get_parent_class($double))->toBe('Kahlan\Util\Text'); }); </code>
Bahagian penting ketika bekerja dengan pasukan untuk menyampaikan kod adalah keupayaan untuk memeriksa kod tersebut secara automatik sebelum menggabungkannya ke repositori rasmi projek. Kebanyakan perkhidmatan/alat CI yang tersedia dapat menguji kod pada platform dan konfigurasi yang berbeza untuk memastikan kod anda dapat digabungkan dengan selamat.
Terdapat banyak perkhidmatan yang menawarkan penilaian harga yang baik, tetapi anda juga boleh menggunakan alat sumber terbuka:
phpci: (sumber terbuka) Pengenalan artikel.
- Travisci: (Projek Sumber Terbuka Percuma) Artikel Pengenalan.
- Semaphoreci: (Open Source Project Free) Artikel Pengenalan.
- Jenkins: artikel pemula.
- Kesimpulan
Bagaimana pengalaman anda dengan alat di atas? Adakah kita terlepas sesuatu? Tolong beritahu kami bahawa kami akan melakukan yang terbaik untuk mengembangkan senarai dengan alat yang diperlukan!
Soalan Lazim mengenai Alat Jaminan Kualiti PHP (FAQ)
Ciri -ciri utama apa yang perlu dipertimbangkan semasa memilih alat jaminan kualiti PHP?
Apabila memilih alat jaminan kualiti PHP, beberapa ciri utama perlu dipertimbangkan. Pertama, alat ini harus dapat melakukan analisis kod statik, yang melibatkan memeriksa kod sumber untuk kesilapan, bug, atau pelanggaran piawaian pengekodan tanpa melaksanakan program. Kedua, alat ini harus menyediakan rangka kerja ujian unit yang membolehkan anda menguji unit individu kod sumber untuk menentukan sama ada ia sesuai untuk digunakan. Ciri -ciri penting lain termasuk analisis liputan kod (mengukur tahap ujian kod) dan integrasi berterusan (kerap menggabungkan semua salinan kerja pemaju ke garis utama yang dikongsi).
Bagaimana alat jaminan kualiti php meningkatkan kecekapan proses pembangunan saya?
Alat jaminan kualiti PHP dapat meningkatkan kecekapan proses pembangunan dengan mengautomasikan banyak tugas yang memakan masa dan rawan kesilapan. Sebagai contoh, analisis kod statik secara automatik dapat mengesan kesilapan yang berpotensi dan pelanggaran piawaian pengekodan, menghapuskan kerumitan memeriksa kod anda secara manual. Begitu juga, rangka kerja ujian unit secara automatik boleh menguji unit individu kod sumber, memastikan bahawa mereka dapat berfungsi dengan baik sebelum diintegrasikan ke dalam sistem yang lebih besar. Ini dapat menjimatkan banyak masa dan usaha untuk menyahpepijat dan penyelesaian masalah.
Adakah terdapat alat Jaminan Kualiti PHP Sumber Terbuka yang tersedia?
Ya, terdapat banyak alat jaminan kualiti PHP sumber terbuka yang tersedia. Ini termasuk php_codesniffer (memeriksa pelanggaran piawaian pengekodan dalam kod); Alat ini percuma untuk digunakan dan boleh disesuaikan dengan keperluan khusus anda.
(Jawapan FAQ berikut juga ditulis semula, menjaga makna asal tidak berubah dan menyesuaikan gaya bahasa untuk menjadikannya lebih lancar dan lebih semula jadi.)
Atas ialah kandungan terperinci 8 mesti mempunyai alat jaminan kualiti php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Alipay Php ...

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Sesi rampasan boleh dicapai melalui langkah -langkah berikut: 1. Dapatkan ID Sesi, 2. Gunakan ID Sesi, 3. Simpan sesi aktif. Kaedah untuk mengelakkan rampasan sesi dalam PHP termasuk: 1. Gunakan fungsi Sesi_Regenerate_ID () untuk menjana semula ID Sesi, 2. Data sesi stor melalui pangkalan data, 3.

Penerapan prinsip pepejal dalam pembangunan PHP termasuk: 1. Prinsip Tanggungjawab Tunggal (SRP): Setiap kelas bertanggungjawab untuk hanya satu fungsi. 2. Prinsip Terbuka dan Tutup (OCP): Perubahan dicapai melalui lanjutan dan bukannya pengubahsuaian. 3. Prinsip Penggantian Lisch (LSP): Subkelas boleh menggantikan kelas asas tanpa menjejaskan ketepatan program. 4. Prinsip Pengasingan Antara Muka (ISP): Gunakan antara muka halus untuk mengelakkan kebergantungan dan kaedah yang tidak digunakan. 5. Prinsip Inversi Ketergantungan (DIP): Modul peringkat tinggi dan rendah bergantung kepada abstraksi dan dilaksanakan melalui suntikan ketergantungan.

Bagaimana cara debug mod CLI dalam phpstorm? Semasa membangun dengan PHPStorm, kadang -kadang kita perlu debug PHP dalam mod Interface Line Command (CLI) ...

Artikel membincangkan ciri -ciri keselamatan penting dalam rangka kerja untuk melindungi daripada kelemahan, termasuk pengesahan input, pengesahan, dan kemas kini tetap.

Bagaimana untuk menetapkan keizinan UnixSocket secara automatik selepas sistem dimulakan semula. Setiap kali sistem dimulakan semula, kita perlu melaksanakan perintah berikut untuk mengubahsuai keizinan UnixSocket: sudo ...

Fungsi penghitungan dalam Php8.1 meningkatkan kejelasan dan jenis keselamatan kod dengan menentukan pemalar yang dinamakan. 1) Penghitungan boleh menjadi bilangan bulat, rentetan atau objek, meningkatkan kebolehbacaan kod dan keselamatan jenis. 2) Penghitungan adalah berdasarkan kelas dan menyokong ciri-ciri berorientasikan objek seperti traversal dan refleksi. 3) Penghitungan boleh digunakan untuk perbandingan dan tugasan untuk memastikan keselamatan jenis. 4) Penghitungan menyokong penambahan kaedah untuk melaksanakan logik kompleks. 5) Pemeriksaan jenis dan pengendalian ralat yang ketat boleh mengelakkan kesilapan biasa. 6) Penghitungan mengurangkan nilai sihir dan meningkatkan keupayaan, tetapi memberi perhatian kepada pengoptimuman prestasi.
