Praktik terbaik untuk pengujian - Amazon CodeCatalyst

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Praktik terbaik untuk pengujian

Saat menggunakan fitur pengujian yang disediakan oleh CodeCatalyst, kami sarankan Anda mengikuti praktik terbaik ini.

Penemuan otomatis

Saat mengonfigurasi tindakan CodeCatalyst, penemuan otomatis memungkinkan Anda menemukan keluaran berbagai alat secara otomatis, seperti laporan JUnit pengujian, dan menghasilkan laporan yang relevan darinya CodeCatalyst. Penemuan otomatis membantu memastikan bahwa laporan terus dibuat meskipun nama atau jalur ke output yang ditemukan berubah. Ketika file baru ditambahkan, CodeCatalyst secara otomatis menemukan mereka dan menghasilkan laporan yang relevan. Namun, jika Anda menggunakan penemuan otomatis, penting untuk memperhitungkan beberapa aspek berikut dari fitur ini:

  • Saat Anda mengaktifkan penemuan otomatis dalam tindakan Anda, semua laporan yang ditemukan secara otomatis dari jenis yang sama akan berbagi kriteria keberhasilan yang sama. Misalnya, kriteria bersama seperti tingkat kelulusan minimum akan berlaku untuk semua laporan pengujian yang ditemukan secara otomatis. Jika Anda memerlukan kriteria yang berbeda untuk laporan dari jenis yang sama, Anda harus secara eksplisit mengonfigurasi setiap laporan ini.

  • Penemuan otomatis juga dapat menemukan laporan yang dihasilkan oleh dependensi Anda dan, jika kriteria keberhasilan dikonfigurasi, mungkin gagal dalam tindakan pada laporan ini. Masalah ini dapat diatasi dengan memperbarui konfigurasi jalur pengecualian.

  • Penemuan otomatis tidak dijamin menghasilkan daftar laporan yang sama setiap saat, karena memindai tindakan saat runtime. Jika Anda ingin laporan tertentu selalu diproduksi, Anda harus mengonfigurasi laporan secara eksplisit. Misalnya, jika pengujian berhenti berjalan sebagai bagian dari build Anda, kerangka pengujian tidak akan menghasilkan output apa pun dan, sebagai hasilnya, tidak ada laporan pengujian yang akan dihasilkan dan tindakan mungkin berhasil. Jika Anda ingin keberhasilan tindakan Anda bergantung pada pengujian tertentu, maka Anda harus mengonfigurasi laporan itu secara eksplisit.

Tip

Saat memulai proyek baru atau yang sudah ada, gunakan penemuan otomatis untuk seluruh direktori proyek (termasuk**/*). Ini memanggil pembuatan laporan di semua file dalam proyek Anda, termasuk yang ada di dalam subdirektori.

Untuk informasi selengkapnya, lihat Mengkonfigurasi laporan kualitas dalam suatu tindakan.

Kriteria keberhasilan

Anda dapat menerapkan ambang kualitas pada laporan Anda dengan mengonfigurasi kriteria keberhasilan. Misalnya, jika dua laporan cakupan kode ditemukan secara otomatis, satu dengan cakupan baris 80% dan yang lainnya dengan cakupan garis 60%, Anda memiliki opsi berikut:

  • Tetapkan kriteria keberhasilan penemuan otomatis untuk cakupan lini sebesar 80%. Ini akan menyebabkan laporan pertama lulus dan laporan kedua gagal, yang akan mengakibatkan tindakan keseluruhan gagal. Untuk membuka blokir alur kerja, tambahkan pengujian baru ke proyek Anda hingga cakupan baris untuk laporan kedua melebihi 80%.

  • Tetapkan kriteria keberhasilan penemuan otomatis untuk cakupan lini pada 60%. Ini akan menyebabkan kedua laporan lolos, yang akan menghasilkan tindakan berhasil. Anda kemudian dapat bekerja untuk meningkatkan cakupan kode di laporan kedua. Namun, dengan pendekatan ini, Anda tidak dapat menjamin bahwa cakupan dalam laporan pertama tidak turun di bawah 80%.

  • Konfigurasikan satu atau kedua laporan secara eksplisit dengan menggunakan editor visual atau menambahkan YAML bagian dan jalur eksplisit untuk setiap laporan. Ini akan memungkinkan Anda untuk mengonfigurasi kriteria keberhasilan terpisah dan nama khusus untuk setiap laporan. Namun, dengan pendekatan ini, tindakan bisa gagal jika jalur laporan berubah.

Untuk informasi selengkapnya, lihat Mengkonfigurasi kriteria keberhasilan untuk laporan.

Sertakan/kecualikan jalur

Saat meninjau hasil tindakan, Anda dapat menyesuaikan daftar laporan yang dihasilkan CodeCatalyst dengan mengonfigurasi dan. IncludePaths ExcludePaths

  • Gunakan IncludePaths untuk menentukan file dan jalur file yang CodeCatalyst ingin Anda sertakan saat mencari laporan. Misalnya, jika Anda menentukan"/test/report/*", akan CodeCatalyst mencari seluruh image build yang digunakan oleh tindakan mencari /test/report/ direktori. Ketika menemukan direktori itu, CodeCatalyst maka cari laporan di direktori itu.

    catatan

    Untuk laporan yang dikonfigurasi secara manual, IncludePaths harus berupa pola glob yang cocok dengan satu file.

  • Gunakan ExcludePaths untuk menentukan file dan jalur file yang CodeCatalyst ingin Anda kecualikan saat mencari laporan. Misalnya, jika Anda menentukan"/test/reports/**/*", tidak CodeCatalyst akan mencari file di /test/reports/ direktori. Untuk mengabaikan semua file dalam direktori, gunakan pola **/* glob.

Berikut ini adalah contoh pola glob yang mungkin.

Pola Deskripsi

*.*

Cocokkan semua nama objek di direktori saat ini yang berisi titik

*.xml

Cocokkan semua nama objek di direktori saat ini yang diakhiri dengan .xml

*.{xml,txt}

Cocokkan semua nama objek di direktori saat ini yang diakhiri dengan .xml atau .txt

**/*.xml

Mencocokkan nama objek di semua direktori yang diakhiri dengan .xml

testFolder

Cocokkan objek yang disebuttestFolder, memperlakukannya sebagai file

testFolder/*

Mencocokkan objek dalam satu tingkat subfolder daritestFolder, seperti testFolder/file.xml

testFolder/*/*

Mencocokkan objek dalam dua tingkat subfolder daritestFolder, seperti testFolder/reportsFolder/file.xml

testFolder/**

Cocok dengan subfolder testFolder serta file di bawah testFolder, seperti testFolder/file.xml dan testFolder/otherFolder/file.xml

CodeCatalyst menafsirkan pola glob sebagai berikut:

  • Karakter slash (/) memisahkan direktori di jalur file.

  • Karakter tanda bintang (*) cocok dengan karakter nol atau karakter lain dari komponen nama tanpa melintasi batas folder.

  • Tanda bintang ganda (**) cocok dengan nol atau lebih karakter dari komponen nama di semua direktori.

catatan

ExcludePathslebih diutamakan. IncludePaths Jika keduanya IncludePaths dan ExcludePaths menyertakan folder yang sama, folder itu tidak dipindai untuk laporan.