Pengujian
Persediaan
Semak perubahan anda pada komputer anda sebelum menghantarnya.
Sebelum bermula
Pautan ke Sebelum bermula-
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-
Bina dan semak kod Go:
Terminal window go build ./...go vet ./... -
Jalankan ujian Go:
Terminal window go test ./... -
Semak dan uji app web:
Terminal window npm --prefix app/frontend run checknpm --prefix app/frontend run lintnpm --prefix app/frontend run test -
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 hujungUjian hujung ke hujung menggerakkan pelayar sebenar terhadap program sebenar. Jalankan projek untuk kawasan yang anda sentuh:
npm --prefix app/frontend run e2e -- --project=moviesLarian 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.
Pilihan
Pautan ke PilihanProjek 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 berfungsiGejala. 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.
Untuk pakar
Pautan ke Untuk pakarTeg 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.
go test -count=1 -run '^TestFault|^TestCrashInEveryLoopIsContained$' ./app/backend/cmd/holyarrsHOLYARRS_RESTART_TIMING=1 go test -count=1 -run '^TestCrashRestartTime$' ./app/backend/cmd/holyarrsHOLYARRS_MEMORY=1 go test -count=1 -timeout 30m -run '^TestMemoryPartsRuns$' ./app/backend/cmd/holyarrsgo 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.
Berkaitan
Pautan ke BerkaitanHolyArrs percuma. Jika ia menjimatkan masa anda, beri bintang di GitHub, taja projek ini atau belanja saya kopi.