Rumah >Peranti teknologi >industri IT >Automatikkan Debugging dalam Git dengan Ujian Unit
untuk menyegarkan ingatan anda, git bisect melibatkan beberapa langkah, yang diringkaskan di bawah:
Secara semulajadi, langkah ketiga adalah memakan masa - Git akan menunjukkan anda melakukan satu persatu dan anda harus melabelkannya sebagai "baik" atau "buruk" setelah memeriksa apakah pepijat itu hadir dalam komit itu.
Apabila kita menulis skrip untuk mengautomasikan proses debugging, kita pada dasarnya akan menjalankan langkah ketiga. Mari kita mulakan!
Mementaskan Alam Sekitar
Untuk mengautomasikan proses git bisect, anda perlu menulis ujian untuk kod anda. Di Python, kami akan menggunakan modul Unittest untuk menulis kes ujian kami. Inilah ujian asas seperti.
<span>#add_two_numbers.py </span>def add_two_numbers<span>(a, b): </span> <span>''' </span> Function to <span>add two numbers </span> <span>''' </span> addition <span>= a + b </span> <span>return addition</span>
<span>#add_two_numbers.py </span>def add_two_numbers<span>(a, b): </span> <span>''' </span> Function to <span>add two numbers </span> <span>''' </span> addition <span>= a + b </span> <span>return addition</span>
kita boleh menulis lebih banyak ujian ini, tetapi ini hanya untuk menunjukkan bagaimana untuk meneruskannya. Sebenarnya, anda pasti akan menulis lebih banyak kes ujian kerana program dan aplikasi anda akan jauh lebih kompleks daripada ini.
Untuk menjalankan ujian unit, laksanakan fail tests.py yang mengandungi kes ujian anda.
<span>#tests.py </span><span>import unittest </span>from add_two_numbers <span>import add_two_numbers </span> class TestsForAddFunction<span>(unittest.TestCase): </span> def test_zeros<span>(self): </span> result <span>= add_two_numbers(0, 0) </span> self.assertEqual<span>(0, result) </span> <span>if __name__ == '__main__': </span> unittest.main<span>()</span>Jika ujian lulus, anda perlu mendapatkan output berikut.
python tests.pyUntuk mengesahkan bahawa ujian gagal, marilah kita menjalankannya lagi.
def add_two_numbers<span>(a, b): </span> <span>''' </span> Function to <span>add two numbers </span> <span>''' </span> addition <span>= a + 0 </span> <span>return addition</span>Pada ketika ini, Git menunjuk kami untuk komit dan bertanya kepada kami sama ada ia adalah komitmen yang baik atau buruk. Ini adalah ketika kami memberitahu Git untuk menjalankan ujian untuk kami. Perintah untuknya adalah seperti berikut.
<span>git bisect start b60fe2cf35 98d9df03b6</span>Dalam kes kita, ia akan menjadi yang berikut.
<span>git bisect run [command to run tests]</span>Apabila kami memberikan arahan untuk menjalankan ujian itu sendiri, dan bukannya bertanya kepada kami, Git menjalankan ujian ini untuk setiap semakan dan memutuskan sama ada komit harus diberikan baik atau buruk.
Di tempat ujian unit anda, anda juga boleh membuat skrip shell tersuai dengan kod keluar tersuai. Secara umumnya kod keluar 0 dianggap sebagai kejayaan, segala -galanya adalah kegagalan.
Pemikiran Akhir
Bagaimanakah kesilapan debug pasukan anda dalam kod? Beritahu kami dalam komen di bawah.
Menyediakan debugging automatik dengan ujian unit git melibatkan beberapa langkah. Pertama, anda perlu membuat repositori git dan memulakannya. Kemudian, anda perlu menulis ujian unit anda menggunakan kerangka ujian yang serasi dengan bahasa pengaturcaraan anda. Sebaik sahaja ujian anda ditulis, anda boleh menggunakan alat Integrasi Berterusan (CI) untuk mengautomasikan menjalankan ujian ini. Alat ini boleh dikonfigurasikan untuk menjalankan ujian anda setiap kali anda menolak perubahan ke repositori git anda. Dengan cara ini, anda boleh menangkap dan memperbaiki pepijat awal dalam proses pembangunan. Ia membantu menangkap bug awal dalam proses pembangunan, yang dapat menjimatkan masa dan sumber. Ia juga memastikan bahawa semua bahagian kod anda diuji secara konsisten. Ini dapat meningkatkan kualiti keseluruhan kod anda dan menjadikannya lebih dipercayai. Di samping itu, ia boleh menjadikan proses pembangunan anda lebih cekap dengan mengurangkan jumlah ujian manual yang perlu anda lakukan. > Integrasi Berterusan (CI) adalah amalan pembangunan di mana pemaju mengintegrasikan kod ke dalam repositori bersama, biasanya beberapa kali sehari. Setiap integrasi kemudiannya disahkan oleh ujian binaan dan automatik automatik. Dalam konteks ujian unit git, CI boleh digunakan untuk mengautomasikan ujian ini setiap kali perubahan ditolak ke repositori Git. Ini membantu menangkap pepijat lebih awal dan memastikan bahawa semua bahagian kod diuji secara konsisten. . Pertama, setiap ujian harus memberi tumpuan kepada fungsi atau tingkah laku tunggal. Ini menjadikannya lebih mudah untuk mengenal pasti punca sebarang kegagalan. Kedua, ujian harus bebas dan dapat berjalan dalam apa -apa perintah. Ini memastikan bahawa hasil satu ujian tidak menjejaskan hasil yang lain. Ketiga, ujian harus berulang dan menghasilkan hasil yang sama setiap kali mereka dijalankan. Ini memastikan ujian anda boleh dipercayai dan boleh dipercayai untuk menangkap bug. dengan ujian unit git. Ini termasuk alat integrasi berterusan (CI) seperti Jenkins, Travis CI, dan CircleCi. Alat ini boleh dikonfigurasikan untuk menjalankan ujian unit anda setiap kali anda menolak perubahan ke repositori git anda. Di samping itu, anda boleh menggunakan rangka kerja ujian seperti Junit (untuk Java), Pytest (untuk Python), dan Mocha (untuk JavaScript) untuk menulis ujian unit anda.
Atas ialah kandungan terperinci Automatikkan Debugging dalam Git dengan Ujian Unit. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!