Saltar al contingut

Proves

Configuració

Comprova el teu canvi al teu equip abans d’enviar-lo.

  • 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
  1. Compila i revisa el codi de Go:

    Terminal window
    go build ./...
    go vet ./...
  2. Executa les proves de Go:

    Terminal window
    go test ./...
  3. Comprova i prova l’app web:

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

Les proves d’extrem a extrem controlen un navegador real contra un programa real. Executa el projecte de la zona que has tocat:

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

L’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.

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

Sí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.

Etiquetes 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ó.

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

HolyArrs és gratis. Si t'ha estalviat temps, dona-li una estrella a GitHub, patrocina'l o convida'm a un cafè.