Proves
Configuració
Comprova el teu canvi al teu equip abans d’enviar-lo.
Abans de començar
Enllaç a Abans de començar-
Acaba la Configuració. Les proves de Go serveixen l’app web compilada, així que compila-la primer.
-
Instal·la el navegador de proves una sola vegada:
Terminal window npx --prefix app/frontend playwright install chromium
Executa les comprovacions de cada dia
Enllaç a Executa les comprovacions de cada dia-
Compila i revisa el codi de Go:
Terminal window go build ./...go vet ./... -
Executa les proves de Go:
Terminal window go test ./... -
Comprova i prova l’app web:
Terminal window npm --prefix app/frontend run checknpm --prefix app/frontend run lintnpm --prefix app/frontend run test -
Executa les regles de capes i de disposició de fitxers:
Terminal window go test -tags structure ./app/backend/tools/structurecheck
No hauries de veure cap fallada. La CI executa les mateixes ordres, les de Go a amd64 i arm64, més una execució amb el detector de carreres (go test -race ./...).
Executa les proves d’extrem a extrem
Enllaç a Executa les proves d’extrem a extremLes proves d’extrem a extrem controlen un navegador real contra un programa real. Executa el projecte de la zona que has tocat:
npm --prefix app/frontend run e2e -- --project=moviesL’execució inicia el seu propi HolyArrs amb una carpeta de configuració nova. El projecte setup crea primer el propietari, i la majoria dels altres projectes l’esperen. Abans d’una versió, executa tota la bateria sense --project.
Opcions
Enllaç a OpcionsQuins projectes executar
Enllaç a Quins projectes executar| Has canviat | Executa |
|---|---|
| Pel·lícules | movies |
| Sèries | shows |
| Sol·licituds | requests, lists, reports |
| Baixades | sources, downloaders, downloads |
| Inici de sessió i usuaris | accounts, kid |
| Salut i programacions | schedules, controls |
| Disposició de les pàgines | desktop, phone, a11y |
Els projectes es defineixen a app/frontend/playwright.config.ts. Un projecte que en depèn d’un altre l’executa primer.
On va una prova nova
Enllaç a On va una prova nova| Tipus | On |
|---|---|
| Go | Al costat del fitxer que prova |
| Unitària web | Al costat del seu fitxer, com a name.test.ts |
| D’extrem a extrem | app/tests/<module>/ |
No cridis mai un servei extern real. Afegeix un substitut a app/tests/fakes. Una prova que només passa al teu equip està trencada.
Si no funciona
Enllaç a Si no funcionaSímptoma. Falla una comprovació d’estructura. Causa. El missatge indica el fitxer i la regla que has trencat. Solució. Mou el codi, o passa dades simples des del mòdul superior. Mira Mòduls.
Símptoma. Les proves d’extrem a extrem no arrenquen.
Causa. El navegador de proves no està instal·lat.
Solució. Executa la línia playwright install de més amunt.
Símptoma. Les proves de Go fallen per pàgines que falten.
Causa. L’app web no està compilada.
Solució. Executa npm --prefix app/frontend run build.
Per a experts
Enllaç a Per a expertsEtiquetes de compilació
Una prova amb etiqueta es salta en un go test ./... normal. Passa -tags <tag> per executar-la.
| Etiqueta | Conté |
|---|---|
structure |
Les regles de capes, disposició de fitxers, lloc de l’SQL i comentaris de tools/structurecheck |
measure |
Comprovacions de temps de baixada |
lab |
Proves contra apps reals en un laboratori de proves. Llegeixen HOLYARRS_LAB_* i es salten quan no estan definides |
labms, livesubs |
Execucions de laboratori per a servidors multimèdia i llocs de subtítols en directe |
Execucions llargues i de fallades
La CI les executa a més de les proves normals. Executa-les abans d’una versió.
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| Variable | Fa |
|---|---|
HOLYARRS_FAULT_OUT |
Fitxer on les execucions de fallades escriuen la seva taula |
HOLYARRS_RESTART_TIMING, HOLYARRS_RESTART_TIMING_OUT |
Activen la mesura del temps entre la fallada i l’inici de sessió i en posen nom al fitxer de sortida |
HOLYARRS_MEMORY, HOLYARRS_MEMORY_OUT |
Activen les execucions de memòria i en posen nom al fitxer de sortida |
HOLYARRS_CRASH_RUNS, HOLYARRS_CRASH_SEED |
Rondes i llavor del bucle de fallades a app/backend/internal/mediafiles/dbtests (crash_test.go), que es salta amb -short |
Servidors substituts i variables
Les proves d’extrem a extrem inicien servidors substituts per als gestors de baixades, les Fonts i el servidor de metadades, així que cap prova arriba a un servei real. Les proves defineixen variables com HOLYARRS_TMDB_URL, HOLYARRS_MUSICBRAINZ_URL, HOLYARRS_PLEX_URL i HOLYARRS_QBITTORRENT_URL perquè el programa els usi. Una instal·lació real no les necessita mai.
El contracte de l’API té les seves pròpies proves. TestOpenAPIGenerated falla quan openapi.json s’allunya de les rutes, i la instantània de la taula de rutes a tools/structurecheck/testdata falla amb qualsevol ruta afegida, treta o moguda.
Relacionat
Enllaç a RelacionatHolyArrs és gratis. Si t'ha estalviat temps, dona-li una estrella a GitHub, patrocina'l o convida'm a un cafè.