Apakah pemeriksaan statis itu?

8

Setelah membangun modul saya, saya mencoba menjalankan bin/magento dev:tests:run static.
Ini melaporkan beberapa masalah dengan kode saya, tetapi saya tidak yakin persis apa yang diperiksa ketika menjalankan tes ini.
Dokumentasi resmi mengatakan

Analisis kode statis memeriksa bahwa kode PHP mengikuti standar pengkodean Magento 2 dan praktik terbaik. Mereka biasanya dieksekusi selama integrasi terus menerus menggunakan alat bin / magento.

Tapi itu tidak berarti banyak.
Apa yang saya temukan sejauh ini adalah.

  • kehadiran dari composer.json
  • kehadiran dari README.md
  • kehadiran dari licence.txt
  • urutan argumen konstruktor cocok dengan urutan argumen induk.

Apa lagi?

Marius
sumber
@AnkitShah Bisakah Anda mengarahkan saya ke paragraf yang tepat di halaman yang Anda tautkan di mana dikatakan apa yang dilakukan tes statis?
Marius

Jawaban:

6

bin/magento dev:tests:run static akan berlari:

  • Analisis Kode Kurang Statis: Generic.Files.EndFileNewline, Generic.Files.LineEndings, Generic.WhiteSpace.DisallowTabIndent, Squiz.CSS.NamedColours
  • Analisis Kode Statis Javascript: eslint, jshint
  • Verifikasi Standar PHP Coding:
    1. Mengembalikan daftar putih berdasarkan daftar hitam dan git file yang diubah
    2. Jalankan sniff kode PSR2 pada kode tersebut
    3. Jalankan standar pengkodean khusus Magento pada kode
    4. Jalankan sniff anotasi pada kode
    5. Jalankan detektor berantakan pada kode
    6. Jalankan copy paste detector pada kode
  • Tes Integritas Kode:
    1. Membangun dependensi modul
    2. Tes yang memberlakukan composer.lock terbaru dengan composer.json
    3. Tes yang memberlakukan validitas file composer.json dan konvensi lainnya dalam komponen Magento
    4. Uji Kompatibilitas Hhvm
  • Tes Output Xss Tidak Aman:
    1. / * @noEscape * / sebelum output. Output tidak membutuhkan pelarian. Tes berwarna hijau.
    2. / * @escapeNotVerified * / sebelum output. Keluaran yang keluar tidak dicentang dan * harus diverifikasi. Tes berwarna hijau.
    3. Metode yang berisi "html" dalam namanya (mis. Echo $ object -> {suffix} Html {postfix} ()). * Data siap untuk output HTML. Tes berwarna hijau.
    4. AbstractBlock metode escapeHtml, escapeUrl, escapeQuote, escapeXssInUrl diizinkan. Tes berwarna hijau.
    5. Jenis casting dan penghitungan fungsi php () diperbolehkan * (mis. Echo (int) $ var, echo (float) $ var, echo (bool) $ var, echo count ($ var)). Tes berwarna hijau.
    6. Output dalam tanda kutip tunggal (misalnya gema 'beberapa teks'). Tes berwarna hijau.
    7. Output dalam tanda kutip ganda tanpa variabel (misalnya gema "beberapa teks"). Tes berwarna hijau.
    8. Lain dari hal.1-7. Output tidak luput. Tes berwarna merah.

Sumber: dev / tests / static / phpunit.xml.dist

Jonathan Ribas
sumber
dapatkah Anda menambahkan beberapa kata tentang masing-masing kata? Mungkin contoh yang tidak lulus tes tertentu?
Marius
@Marius Saya baru saja menambahkan beberapa kata untuk masing-masing (saya mengambil semuanya dari inti), semoga ini membantu.
Jonathan Ribas