Testēšana
Iestatīšana
Pārbaudi savu izmaiņu savā datorā, pirms to nosūti.
Pirms sāc
Saite uz Pirms sāc-
Pabeidz Iestatīšana. Go testi apkalpo uzbūvēto tīmekļa lietotni, tāpēc vispirms to uzbūvē.
-
Vienreiz uzstādi testu pārlūku:
Terminal window npx --prefix app/frontend playwright install chromium
Palaid ikdienas pārbaudes
Saite uz Palaid ikdienas pārbaudes-
Uzbūvē un pārbaudi Go kodu:
Terminal window go build ./...go vet ./... -
Palaid Go testus:
Terminal window go test ./... -
Pārbaudi un testē tīmekļa lietotni:
Terminal window npm --prefix app/frontend run checknpm --prefix app/frontend run lintnpm --prefix app/frontend run test -
Palaid slāņu un failu izkārtojuma noteikumus:
Terminal window go test -tags structure ./app/backend/tools/structurecheck
Tev nevajadzētu redzēt nevienu kļūmi. CI palaiž tās pašas komandas, Go komandas uz amd64 un arm64, kā arī vienu palaišanu ar sacīkšu detektoru (go test -race ./...).
Palaid end-to-end testus
Saite uz Palaid end-to-end testusEnd-to-end testi vada īstu pārlūku pret īstu programmu. Palaid projektu jomai, ko skāri:
npm --prefix app/frontend run e2e -- --project=moviesPalaišana sāk savu HolyArrs ar svaigu konfigurācijas mapi. Projekts setup vispirms izveido īpašnieku, un lielākā daļa citu projektu to gaida. Pirms versijas palaid pilnu komplektu bez --project.
Izvēles
Saite uz IzvēlesKurus projektus palaist
Saite uz Kurus projektus palaist| Tu mainīji | Palaid |
|---|---|
| Filmas | movies |
| Seriālus | shows |
| Pieprasījumus | requests, lists, reports |
| Lejupielādes | sources, downloaders, downloads |
| Pieteikšanos un lietotājus | accounts, kid |
| Veselību un grafikus | schedules, controls |
| Lapas izkārtojumu | desktop, phone, a11y |
Projekti ir nosaukti app/frontend/playwright.config.ts. Projekts, kas atkarīgs no cita, to palaiž vispirms.
Kur nonāk jauns tests
Saite uz Kur nonāk jauns tests| Veids | Kur |
|---|---|
| Go | Blakus failam, ko tas testē |
| Tīmekļa vienību tests | Blakus tā failam, kā name.test.ts |
| End-to-end | app/tests/<module>/ |
Nekad neizsauc īstu ārēju servisu. Pievieno aizstājēju zem app/tests/fakes. Tests, kas iziet tikai tavā datorā, ir bojāts.
Ja tas nedarbojas
Saite uz Ja tas nedarbojasSimptoms. Struktūras pārbaude neizdodas. Cēlonis. Ziņojumā ir minēts fails un noteikums, ko pārkāpi. Risinājums. Pārvieto kodu vai nodod vienkāršus datus no augstākā moduļa. Skaties Moduļi.
Simptoms. End-to-end testi nevar startēt.
Cēlonis. Testu pārlūks nav uzstādīts.
Risinājums. Izpildi iepriekš minēto playwright install rindu.
Simptoms. Go testi neizdodas, jo trūkst lapu.
Cēlonis. Tīmekļa lietotne nav uzbūvēta.
Risinājums. Izpildi npm --prefix app/frontend run build.
Pieredzējušiem
Saite uz PieredzējušiemBūvēšanas birkas
Tests ar birku tiek izlaists parastā go test ./.... Nodod -tags <tag>, lai to palaistu.
| Birka | Satur |
|---|---|
structure |
Slāņu, failu izkārtojuma, SQL novietojuma un komentāru noteikumi mapē tools/structurecheck |
measure |
Lejupielādes laika pārbaudes |
lab |
Testi pret īstām lietotnēm testa laboratorijā. Tie nolasa HOLYARRS_LAB_* un tiek izlaisti, ja tie nav iestatīti |
labms, livesubs |
Laboratorijas palaišanas multivides serveriem un dzīvajām subtitru vietnēm |
Garās un kļūmju palaišanas
CI palaiž tās papildus parastajiem testiem. Palaid tās pirms versijas.
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| Mainīgais | Dara |
|---|---|
HOLYARRS_FAULT_OUT |
Fails, kurā kļūmju palaišanas raksta savu tabulu |
HOLYARRS_RESTART_TIMING, HOLYARRS_RESTART_TIMING_OUT |
Ieslēdz laika mērījumu no avārijas līdz pieteikšanās lapai un nosauc tā izvades failu |
HOLYARRS_MEMORY, HOLYARRS_MEMORY_OUT |
Ieslēdz atmiņas palaišanas un nosauc to izvades failu |
HOLYARRS_CRASH_RUNS, HOLYARRS_CRASH_SEED |
Kārtu skaits un sēkla avāriju cilpai mapē app/backend/internal/mediafiles/dbtests (crash_test.go), kas tiek izlaista ar -short |
Aizstājējserveri un mainīgie
End-to-end testi startē aizstājējserverus lejupielādētājiem, avotiem un metadatu serverim, tāpēc neviens tests nesasniedz īstu servisu. Testi iestata mainīgos, piemēram, HOLYARRS_TMDB_URL, HOLYARRS_MUSICBRAINZ_URL, HOLYARRS_PLEX_URL un HOLYARRS_QBITTORRENT_URL, lai novirzītu programmu uz tiem. Īstai instalācijai tie nekad nav vajadzīgi.
API līgumam ir savi testi. TestOpenAPIGenerated neizdodas, kad openapi.json atšķiras no maršrutiem, un maršrutu tabulas momentuzņēmums mapē tools/structurecheck/testdata neizdodas jebkuram pievienotam, noņemtam vai pārvietotam maršrutam.
Saistītais
Saite uz SaistītaisHolyArrs ir bezmaksas. Ja tas ietaupīja tavu laiku, atzīmē to ar zvaigznīti GitHub, atbalsti to vai uzcienā mani ar kafiju.