Prófanir
Uppsetning
Athugaðu breytinguna á þinni tölvu áður en þú sendir hana.
Áður en þú byrjar
Tengill á Áður en þú byrjar-
Kláraðu Uppsetning. Go-prófin nota smíðaða vefforritið, svo smíðaðu það fyrst.
-
Settu upp browser fyrir prófin einu sinni:
Terminal window npx --prefix app/frontend playwright install chromium
Keyrðu daglegu athuganirnar
Tengill á Keyrðu daglegu athuganirnar-
Smíðaðu og vet-aðu Go-kóðann:
Terminal window go build ./...go vet ./... -
Keyrðu Go-prófin:
Terminal window go test ./... -
Athugaðu og prófaðu vefforritið:
Terminal window npm --prefix app/frontend run checknpm --prefix app/frontend run lintnpm --prefix app/frontend run test -
Keyrðu reglurnar um lög og skráaskipan:
Terminal window go test -tags structure ./app/backend/tools/structurecheck
Þú ættir ekki að sjá neina villu. CI keyrir sömu skipanir, Go-skipanirnar á amd64 og arm64, auk einnar keyrslu með race detector (go test -race ./...).
Keyrðu end-to-end prófin
Tengill á Keyrðu end-to-end prófinEnd-to-end próf stjórna alvöru browser gegn alvöru forriti. Keyrðu verkefnið fyrir svæðið sem þú snertir:
npm --prefix app/frontend run e2e -- --project=moviesKeyrslan ræsir sitt eigið HolyArrs á nýrri stillingamöppu. setup verkefnið býr fyrst til eigandann og flest önnur verkefni bíða eftir því. Keyrðu öll prófin án --project fyrir útgáfu.
Valkostir
Tengill á ValkostirHvaða verkefni á að keyra
Tengill á Hvaða verkefni á að keyra| Þú breyttir | Keyrðu |
|---|---|
| Kvikmyndum | movies |
| Þáttum | shows |
| Beiðnum | requests, lists, reports |
| Niðurhali | sources, downloaders, downloads |
| Innskráningu og notendum | accounts, kid |
| Heilsu og tímaáætlunum | schedules, controls |
| Útliti síðu | desktop, phone, a11y |
Verkefnin eru nefnd í app/frontend/playwright.config.ts. Verkefni sem er háð öðru keyrir það fyrst.
Hvert nýtt próf fer
Tengill á Hvert nýtt próf fer| Tegund | Hvert |
|---|---|
| Go | Við hlið skrárinnar sem það prófar |
| Web unit | Við hlið skrárinnar sinnar, sem name.test.ts |
| End-to-end | app/tests/<module>/ |
Kallaðu aldrei í alvöru utanaðkomandi þjónustu. Bættu við stand-in undir app/tests/fakes. Próf sem stenst aðeins á þinni tölvu er bilað.
Ef það virkar ekki
Tengill á Ef það virkar ekkiEinkenni. Byggingarathugun fellur. Orsök. Skilaboðin nefna skrána og regluna sem þú braust. Lausn. Færðu kóðann, eða sendu hrein gögn inn frá efri einingunni. Sjá Einingar.
Einkenni. End-to-end prófin geta ekki ræst.
Orsök. Browser fyrir prófin er ekki uppsettur.
Lausn. Keyrðu playwright install línuna hér að ofan.
Einkenni. Go-prófin falla vegna síðna sem vantar.
Orsök. Vefforritið er ekki smíðað.
Lausn. Keyrðu npm --prefix app/frontend run build.
Fyrir sérfræðinga
Tengill á Fyrir sérfræðingaBuild tags
Próf með tag er sleppt í venjulegu go test ./.... Gefðu -tags <tag> til að keyra það.
| Tag | Inniheldur |
|---|---|
structure |
Reglurnar um lög, skráaskipan, staðsetningu SQL og athugasemdir í tools/structurecheck |
measure |
Tímamælingar á niðurhali |
lab |
Próf gegn alvöru forritum í prófunarlabbi. Þau lesa HOLYARRS_LAB_* og er sleppt þegar það er óstillt |
labms, livesubs |
Lab-keyrslur fyrir margmiðlunarþjóna og lifandi textasíður |
Langar keyrslur og fault-keyrslur
CI keyrir þetta ofan á venjulegu prófin. Keyrðu þær fyrir útgáfu.
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| Breyta | Gerir |
|---|---|
HOLYARRS_FAULT_OUT |
Skráin sem fault-keyrslurnar skrifa töflu sína í |
HOLYARRS_RESTART_TIMING, HOLYARRS_RESTART_TIMING_OUT |
Kveikja á tímamælingu frá hruni að innskráningu og nefna úttaksskrána |
HOLYARRS_MEMORY, HOLYARRS_MEMORY_OUT |
Kveikja á minniskeyrslunum og nefna úttaksskrá þeirra |
HOLYARRS_CRASH_RUNS, HOLYARRS_CRASH_SEED |
Fjöldi umferða og fræ fyrir hrunlykkjuna í app/backend/internal/mediafiles/dbtests (crash_test.go), sem er sleppt undir -short |
Stand-in server og breytur
End-to-end próf ræsa stand-in server fyrir niðurhalsforrit, uppsprettur og metadata-serverinn, svo ekkert próf nær í alvöru þjónustu. Prófin stilla breytur eins og HOLYARRS_TMDB_URL, HOLYARRS_MUSICBRAINZ_URL, HOLYARRS_PLEX_URL og HOLYARRS_QBITTORRENT_URL til að beina forritinu á þá. Alvöru uppsetning þarf þær aldrei.
API-samningurinn hefur sín eigin próf. TestOpenAPIGenerated fellur þegar openapi.json víkur frá leiðunum, og skyndimynd leiðatöflunnar í tools/structurecheck/testdata fellur við hverja leið sem er bætt við, fjarlægð eða færð.
Tengt efni
Tengill á Tengt efniHolyArrs er ókeypis. Ef það sparaði þér tíma geturðu gefið því stjörnu á GitHub, styrkt það eða boðið mér í kaffi.