Rumah > pembangunan bahagian belakang > tutorial php > Kaedah dan aplikasi PHP untuk ujian automatik dan penghantaran berterusan

Kaedah dan aplikasi PHP untuk ujian automatik dan penghantaran berterusan

WBOY
Lepaskan: 2023-06-18 15:18:01
asal
1197 orang telah melayarinya

Dengan perubahan berterusan dalam kaedah pembangunan perisian, ujian automatik dan penghantaran berterusan telah menjadi kata kunci utama dalam proses pembangunan perisian hari ini. Antaranya, PHP, sebagai bahasa skrip yang digunakan secara meluas dalam pembangunan aplikasi web, juga mempunyai set alat yang kaya untuk mencapai ujian automatik dan penghantaran berterusan, dan dengan kelebihannya sendiri iaitu kemas kini berulang yang cepat dan kelajuan pembangunan, ia telah menjadi pilihan pertama. untuk pasukan pembangunan perusahaan.

1. Alat ujian automatik

Dalam PHP, ujian automatik mempunyai pelbagai peringkat pelaksanaan, seperti ujian unit, ujian integrasi dan ujian fungsi. Atas sebab ini, kita boleh menggunakan PHPUnit sebagai rangka kerja ujian utama untuk PHP untuk melaksanakan ujian ini. PHPUnit ialah rangka kerja ujian PHP yang dicipta oleh Sebastian Bergmann Ia boleh melaksanakan ujian unit, ujian integrasi dan ujian fungsian yang ditulis dalam aplikasi sebenar untuk memastikan kod itu boleh dilaksanakan seperti yang diharapkan semasa proses pembangunan. Rangka kerja ujian PHPUnit secara automatik boleh melaksanakan kes ujian dan menjana laporan ujian, dan boleh menghubungkan keputusan ujian (lulus/gagal/ralat) ke dalam rangka kerja binaan CI/CD sebagai sebahagian daripada sistem semakan pra-pengerahan manual atau automatik. Sebagai contoh, kami boleh meletakkan semua kes ujian dalam folder ujian dan melaksanakan ujian melalui ujian unit:

<?php
require_once 'PHPUnit/Framework.php';

class SampleTest extends PHPUnit_Framework_TestCase
{
  public function testOnePlusOne() {
    $this->assertEquals(1+1,2);
  }  
}
?>
Salin selepas log masuk

2. Alat penghantaran berterusan

Selain alat ujian automatik, kami juga memerlukan untuk menggunakan alatan penghantaran berterusan yang sesuai untuk mengautomasikan proses penggunaan kami. Dalam PHP, kami mempunyai banyak alat penghantaran berterusan untuk dipilih, seperti Phing, Capistrano, Deployer, dll. Kami mengesyorkan menggunakan Phing, iaitu sistem binaan yang fleksibel dan berkuasa yang boleh melaksanakan pembungkusan, pemampatan, penggunaan dan operasi lain. Phing menyokong format Ant yang biasa kepada kebanyakan pembangun PHP, dan apabila digunakan dengan PHPUnit secara automatik akan melaksanakan semua ujian dan pakej keluaran akan dibina secara automatik dan dimuat naik ke pelayan web yang tersedia. Sebagai contoh, kita boleh menggunakan Phing melalui contoh berikut:

<project name="Project" default="deploy">
  <target name="pre-build">
    <!-- your pre-build tasks here -->
  </target>
  
  <target name="build" depends="pre-build">
    <!-- your build tasks here -->
  </target>
  
  <target name="post-build" depends="build">
    <!-- your post-build tasks here -->
  </target>
  
  <target name="deploy" depends="post-build">
    <ftpdeploy 
      host="ftp.example.com" 
      user="username" 
      password="password"
      dir="/path/to/destination/folder"
      mode="ascii"
      depends="no"
      delete="no"
    >
      <fileset dir="${basedir}/build">
        <include name="**/*"/>
      </fileset>  
    </ftpdeploy>
  </target>
</project>
Salin selepas log masuk

Contoh kod di atas menunjukkan penggunaan Phing untuk membungkus dan memuat naik kod yang disimpan dalam direktori "/build" kod binaan kami ke pelayan FTP.

3. Aplikasi seni bina CI/CD

Menggabungkan Phing dan PHPUnit, kami boleh menggunakan penyepaduan berterusan (CI) untuk pembangunan dan ujian aplikasi web PHP. Pada masa yang sama, kami boleh menggunakan pemalam penghantaran berterusan (CD) untuk mengeluarkan aplikasi secara automatik ke persekitaran pengeluaran. Kita boleh memilih untuk menggunakan banyak alatan CI, seperti Jenkins, TeamCity, Travis CI atau GitLab CI, dsb., yang boleh dengan mudah melaksanakan aplikasi seni bina CI/CD Antaranya, Jenkins ialah salah satu platform CI/CD yang paling popular, dan ia mempunyai ekosistem pemalam yang sangat baik boleh digunakan untuk ujian automatik, pemeriksaan kod, penggunaan kod, dsb. Contoh skrip binaan CI/CD Jenkins diberikan di bawah:

pipeline {
   agent any
  
   stages {
     stage('Build') {
       steps {
         sh 'composer install --no-dev'
         sh 'make build'
       }
     }
     stage('Test') {
       steps {
         sh 'make test'
         junit 'build/logs/*.xml'
       }
     }
     stage('Deploy') {
       steps {
         sh 'make deploy'
       }
     }
   }
}
Salin selepas log masuk

Pembinaan skrip grafik di atas dengan jelas menunjukkan ekosistem penyepaduan berterusan kami yang lengkap: pertama, fasa "Bina" dilaksanakan semasa proses binaan. kami menggunakan komposer untuk memasang pelayan web dan kebergantungan yang diperlukan untuk aplikasi kemudian melaksanakan fasa "Ujian", di mana kami menjalankan ujian unit, semakan liputan dan semakan standard kod kami, dan menyimpan keputusan ujian dalam laporan ujian JUnit; dan akhirnya Laksanakan fasa "Deploy", dan gunakan aplikasi ke pelayan pengeluaran dengan memanggil fail Phing semasa proses penempatan.

Ringkasnya, dengan menggunakan PHPUnit, Phing dan Jenkins, kami boleh melaksanakan set lengkap ujian automatik PHP, penyepaduan berterusan/aplikasi seni bina penghantaran berterusan. Kaedah ini digunakan secara meluas dan memainkan peranan penting dalam pembangunan dan penggunaan aplikasi web PHP, memberikan sokongan yang berkesan untuk pelaksanaan berkesan pelbagai fungsi dalam proses seperti ujian automatik dan penyepaduan berterusan/penyampaian berterusan.

Atas ialah kandungan terperinci Kaedah dan aplikasi PHP untuk ujian automatik dan penghantaran berterusan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan