Fara í efni

Prófanir

Uppsetning

Athugaðu breytinguna á þinni tölvu áður en þú sendir hana.

  • 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
  1. Smíðaðu og vet-aðu Go-kóðann:

    Terminal window
    go build ./...
    go vet ./...
  2. Keyrðu Go-prófin:

    Terminal window
    go test ./...
  3. Athugaðu og prófaðu vefforritið:

    Terminal window
    npm --prefix app/frontend run check
    npm --prefix app/frontend run lint
    npm --prefix app/frontend run test
  4. 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ófin

End-to-end próf stjórna alvöru browser gegn alvöru forriti. Keyrðu verkefnið fyrir svæðið sem þú snertir:

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

Keyrslan 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.

Hvað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.

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ð.

Einkenni. 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.

Build 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.

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
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ð.

HolyArrs 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.