Langkau ke kandungan

Pengujian

Persediaan

Semak perubahan anda pada komputer anda sebelum menghantarnya.

  • Selesaikan Persediaan. Ujian Go menggunakan app web yang telah dibina, jadi bina dahulu.

  • Pasang pelayar ujian sekali:

    Terminal window
    npx --prefix app/frontend playwright install chromium

Jalankan semakan harian

Pautan ke Jalankan semakan harian
  1. Bina dan semak kod Go:

    Terminal window
    go build ./...
    go vet ./...
  2. Jalankan ujian Go:

    Terminal window
    go test ./...
  3. Semak dan uji app web:

    Terminal window
    npm --prefix app/frontend run check
    npm --prefix app/frontend run lint
    npm --prefix app/frontend run test
  4. Jalankan peraturan lapisan dan susun atur fail:

    Terminal window
    go test -tags structure ./app/backend/tools/structurecheck

Anda tidak akan nampak sebarang kegagalan. CI menjalankan arahan yang sama, dan arahan Go pada amd64 serta arm64, serta satu larian dengan pengesan race (go test -race ./...).

Jalankan ujian hujung ke hujung

Pautan ke Jalankan ujian hujung ke hujung

Ujian hujung ke hujung menggerakkan pelayar sebenar terhadap program sebenar. Jalankan projek untuk kawasan yang anda sentuh:

Terminal window
npm --prefix app/frontend run e2e -- --project=movies

Larian itu memulakan HolyArrs sendiri pada folder konfigurasi yang baharu. Projek setup membuat pemilik dahulu, dan kebanyakan projek lain menunggunya. Jalankan suite penuh tanpa --project sebelum satu keluaran.

Projek mana yang dijalankan

Pautan ke Projek mana yang dijalankan
Anda mengubah Jalankan
Filem movies
Siri shows
Permintaan requests, lists, reports
Muat turun sources, downloaders, downloads
Log masuk dan pengguna accounts, kid
Kesihatan dan jadual schedules, controls
Susun atur halaman desktop, phone, a11y

Projek dinamakan dalam app/frontend/playwright.config.ts. Projek yang bergantung pada yang lain menjalankannya dahulu.

Di mana ujian baharu diletakkan

Pautan ke Di mana ujian baharu diletakkan
Jenis Tempat
Go Di sebelah fail yang diujinya
Unit web Di sebelah failnya, sebagai name.test.ts
Hujung ke hujung app/tests/<module>/

Jangan sekali-kali memanggil perkhidmatan luar yang sebenar. Tambah pengganti di bawah app/tests/fakes. Ujian yang lulus hanya pada komputer anda ialah ujian yang rosak.

Jika tidak berfungsi

Pautan ke Jika tidak berfungsi

Gejala. Satu semakan struktur gagal. Punca. Mesej itu menamakan fail dan peraturan yang anda langgar. Penyelesaian. Alihkan kod, atau hantar data biasa dari modul yang lebih tinggi. Lihat Modul.

Gejala. Ujian hujung ke hujung tidak dapat bermula. Punca. Pelayar ujian belum dipasang. Penyelesaian. Jalankan baris playwright install di atas.

Gejala. Ujian Go gagal kerana halaman tiada. Punca. App web belum dibina. Penyelesaian. Jalankan npm --prefix app/frontend run build.

Teg binaan

Ujian dengan teg dilangkau dalam go test ./... biasa. Hantar -tags <tag> untuk menjalankannya.

Teg Memuatkan
structure Peraturan lapisan, susun atur fail, tempat SQL dan komen dalam tools/structurecheck
measure Semakan masa muat turun
lab Ujian terhadap app sebenar dalam makmal ujian. Ia membaca HOLYARRS_LAB_* dan dilangkau apabila itu tidak ditetapkan
labms, livesubs Larian makmal untuk pelayan media dan laman sari kata langsung
Larian panjang dan larian kerosakan

CI menjalankan ini selain ujian biasa. Jalankannya sebelum satu keluaran.

Terminal window
go test -count=1 -run '^TestFault|^TestCrashInEveryLoopIsContained$' ./app/backend/cmd/holyarrs
HOLYARRS_RESTART_TIMING=1 go test -count=1 -run '^TestCrashRestartTime$' ./app/backend/cmd/holyarrs
HOLYARRS_MEMORY=1 go test -count=1 -timeout 30m -run '^TestMemoryPartsRuns$' ./app/backend/cmd/holyarrs
go test -count=1 -run '^TestDownloaderConformance$' ./app/backend/internal/downloads
Pemboleh ubah Fungsi
HOLYARRS_FAULT_OUT Fail tempat larian kerosakan menulis jadualnya
HOLYARRS_RESTART_TIMING, HOLYARRS_RESTART_TIMING_OUT Hidupkan pemasaan dari ranap ke log masuk dan namakan failnya
HOLYARRS_MEMORY, HOLYARRS_MEMORY_OUT Hidupkan larian memori dan namakan fail outputnya
HOLYARRS_CRASH_RUNS, HOLYARRS_CRASH_SEED Pusingan dan benih untuk gelung ranap dalam app/backend/internal/mediafiles/dbtests (crash_test.go), yang dilangkau di bawah -short
Pelayan pengganti dan pemboleh ubah

Ujian hujung ke hujung memulakan pelayan pengganti untuk pemuat turun, Sumber dan pelayan metadata, jadi tiada ujian yang mencapai perkhidmatan sebenar. Ujian menetapkan pemboleh ubah seperti HOLYARRS_TMDB_URL, HOLYARRS_MUSICBRAINZ_URL, HOLYARRS_PLEX_URL dan HOLYARRS_QBITTORRENT_URL untuk mengarahkan program kepadanya. Pemasangan sebenar tidak memerlukannya.

Kontrak API mempunyai ujian sendiri. TestOpenAPIGenerated gagal apabila openapi.json tersasar daripada laluan, dan syot kilat jadual laluan dalam tools/structurecheck/testdata gagal pada sebarang laluan yang ditambah, dibuang atau dialihkan.

HolyArrs percuma. Jika ia menjimatkan masa anda, beri bintang di GitHub, taja projek ini atau belanja saya kopi.