Testimine
Seadistus
Kontrolli oma muudatust oma arvutis enne saatmist.
Enne alustamist
Link jaotisele Enne alustamist-
Lõpeta Seadistamine. Go testid teenindavad ehitatud veebirakendust, nii et ehita see esmalt.
-
Paigalda testbrauser üks kord:
Terminal window npx --prefix app/frontend playwright install chromium
Käivita igapäevased kontrollid
Link jaotisele Käivita igapäevased kontrollid-
Ehita ja kontrolli Go koodi:
Terminal window go build ./...go vet ./... -
Käivita Go testid:
Terminal window go test ./... -
Kontrolli ja testi veebirakendust:
Terminal window npm --prefix app/frontend run checknpm --prefix app/frontend run lintnpm --prefix app/frontend run test -
Käivita kihtide ja failipaigutuse reeglid:
Terminal window go test -tags structure ./app/backend/tools/structurecheck
Ühtegi viga ei tohiks tulla. CI käivitab samu käske, Go omi platvormidel amd64 ja arm64, lisaks üks jooksutus võidujooksu detektoriga (go test -race ./...).
Käivita otsast otsani testid
Link jaotisele Käivita otsast otsani testidOtsast otsani testid juhivad päris brauserit päris programmi vastu. Käivita projekt piirkonna jaoks, mida puutusid:
npm --prefix app/frontend run e2e -- --project=moviesJooksutus käivitab oma HolyArrsi värskes seadete kaustas. Projekt setup teeb esmalt omaniku ja enamik teisi projekte ootab seda. Käivita enne versiooni täielik komplekt ilma --project’ita.
Valikud
Link jaotisele ValikudMilliseid projekte käivitada
Link jaotisele Milliseid projekte käivitada| Muutsid | Käivita |
|---|---|
| Filme | movies |
| Sarju | shows |
| Soove | requests, lists, reports |
| Allalaadimisi | sources, downloaders, downloads |
| Sisselogimist ja kasutajaid | accounts, kid |
| Tervist ja ajakavasid | schedules, controls |
| Lehe paigutust | desktop, phone, a11y |
Projektid on nimetatud failis app/frontend/playwright.config.ts. Projekt, mis sõltub teisest, käivitab selle esmalt.
Kuhu uus test läheb
Link jaotisele Kuhu uus test läheb| Liik | Kuhu |
|---|---|
| Go | Testitava faili kõrvale |
| Veebi ühikutest | Faili kõrvale, kujul name.test.ts |
| Otsast otsani | app/tests/<module>/ |
Ära kunagi kutsu päris välisteenust. Lisa asendaja kausta app/tests/fakes. Test, mis läbib ainult sinu arvutis, on katki.
Kui see ei tööta
Link jaotisele Kui see ei töötaSümptom. Struktuurikontroll ebaõnnestub. Põhjus. Teade nimetab faili ja reegli, mida rikkusid. Lahendus. Tõsta kood ära või anna lihtsad andmed kõrgemast moodulist alla. Vaata Moodulid.
Sümptom. Otsast otsani testid ei käivitu.
Põhjus. Testbrauser ei ole paigaldatud.
Lahendus. Käivita ülaltoodud playwright install rida.
Sümptom. Go testid ebaõnnestuvad puuduvate lehtede tõttu.
Põhjus. Veebirakendus ei ole ehitatud.
Lahendus. Käivita npm --prefix app/frontend run build.
Asjatundjale
Link jaotisele AsjatundjaleEhitussildid
Sildiga test jäetakse tavalises go test ./... vahele. Käivitamiseks anna -tags <tag>.
| Silt | Sisaldab |
|---|---|
structure |
Kihtide, failipaigutuse, SQL asukoha ja kommentaaride reeglid kaustas tools/structurecheck |
measure |
Allalaadimise ajastuse kontrollid |
lab |
Testid päris rakenduste vastu katselaboris. Need loevad HOLYARRS_LAB_* ja jäetakse vahele, kui need pole seatud |
labms, livesubs |
Laborijooksutused meediaserverite ja päris subtiitrisaitide jaoks |
Pikad ja tõrkejooksutused
CI käivitab need tavatestide peale. Käivita need enne versiooni.
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| Muutuja | Teeb |
|---|---|
HOLYARRS_FAULT_OUT |
Fail, kuhu tõrkejooksutused oma tabeli kirjutavad |
HOLYARRS_RESTART_TIMING, HOLYARRS_RESTART_TIMING_OUT |
Lülitavad sisse kokkujooksmisest sisselogimiseni ajastuse ja nimetavad selle väljundfaili |
HOLYARRS_MEMORY, HOLYARRS_MEMORY_OUT |
Lülitavad sisse mälujooksutused ja nimetavad nende väljundfaili |
HOLYARRS_CRASH_RUNS, HOLYARRS_CRASH_SEED |
Voorud ja seeme kokkujooksmise tsükli jaoks kaustas app/backend/internal/mediafiles/dbtests (crash_test.go), mis jäetakse -short korral vahele |
Asendusserverid ja muutujad
Otsast otsani testid käivitavad asendusservereid allalaadijate, allikate ja metaandmete serveri jaoks, nii et ükski test ei jõua päris teenuseni. Testid seavad muutujad, näiteks HOLYARRS_TMDB_URL, HOLYARRS_MUSICBRAINZ_URL, HOLYARRS_PLEX_URL ja HOLYARRS_QBITTORRENT_URL, et suunata programm nende poole. Päris paigaldus ei vaja neid kunagi.
API lepingul on omad testid. TestOpenAPIGenerated ebaõnnestub, kui openapi.json marsruutidest lahku läheb, ja marsruutide tabeli hetktõmmis kaustas tools/structurecheck/testdata ebaõnnestub iga lisatud, eemaldatud või liigutatud marsruudi peale.
Seotud lehed
Link jaotisele Seotud lehedHolyArrs on tasuta. Kui see säästis sinu aega, anna talle GitHubis täht, toeta teda või osta mulle kohvi.