Тестирање
Подешавање
Провери своју измену на свом рачунару пре него што је пошаљеш.
Пре него што почнеш
Линк до Пре него што почнеш-
Заврши Подешавање. Go тестови служе изграђену веб апликацију, па је прво изгради.
-
Једном инсталирај тест претраживач:
Terminal window npx --prefix app/frontend playwright install chromium
Покрени свакодневне провере
Линк до Покрени свакодневне провере-
Изгради и провери Go код:
Terminal window go build ./...go vet ./... -
Покрени Go тестове:
Terminal window go test ./... -
Провери и тестирај веб апликацију:
Terminal window npm --prefix app/frontend run checknpm --prefix app/frontend run lintnpm --prefix app/frontend run test -
Покрени правила о слојевима и распореду фајлова:
Terminal window go test -tags structure ./app/backend/tools/structurecheck
Не би требало да видиш ниједну грешку. CI покреће исте команде, Go на amd64 и arm64, плус једно покретање са детектором трка (go test -race ./...).
Покрени end-to-end тестове
Линк до Покрени end-to-end тестовеEnd-to-end тестови воде прави претраживач против правог програма. Покрени пројекат за област коју си дирао:
npm --prefix app/frontend run e2e -- --project=moviesПокретање подиже свој HolyArrs на свежем конфигурационом фолдеру. Пројекат setup прво прави власника, а већина осталих пројеката чека на њега. Пре објављивања верзије покрени цео скуп без --project.
Опције
Линк до ОпцијеКоје пројекте покренути
Линк до Које пројекте покренути| Променио си | Покрени |
|---|---|
| Филмове | movies |
| Серије | shows |
| Захтеве | requests, lists, reports |
| Преузимања | sources, downloaders, downloads |
| Пријаву и кориснике | accounts, kid |
| Исправност и распореде | schedules, controls |
| Распоред странице | desktop, phone, a11y |
Пројекти су наведени у app/frontend/playwright.config.ts. Пројекат који зависи од другог прво покреће тај други.
Где иде нови тест
Линк до Где иде нови тест| Врста | Где |
|---|---|
| Go | Поред фајла који тестира |
| Web unit | Поред свог фајла, као name.test.ts |
| End-to-end | app/tests/<module>/ |
Никада не зови прави спољни сервис. Додај замену у app/tests/fakes. Тест који пролази само на твом рачунару је покварен.
Ако не ради
Линк до Ако не радиСимптом. Структурна провера пада. Узрок. Порука наводи фајл и правило које си прекршио. Решење. Премести код, или проследи обичне податке из вишег модула. Погледај Модули.
Симптом. End-to-end тестови не могу да се покрену.
Узрок. Тест претраживач није инсталиран.
Решење. Изврши playwright install линију одозго.
Симптом. Go тестови падају због недостајућих страница.
Узрок. Веб апликација није изграђена.
Решење. Изврши npm --prefix app/frontend run build.
За напредне
Линк до За напреднеBuild тагови
Тест са тагом се прескаче у обичном go test ./.... Проследи -tags <tag> да га покренеш.
| Таг | Садржи |
|---|---|
structure |
Правила о слојевима, распореду фајлова, месту SQL-а и коментарима у tools/structurecheck |
measure |
Провере времена преузимања |
lab |
Тестове против правих апликација у тест лабораторији. Читају HOLYARRS_LAB_* и прескачу се када то није постављено |
labms, livesubs |
Лабораторијска покретања за медија сервере и живе сајтове за титлове |
Дуга покретања и покретања са падовима
CI ово покреће преко обичних тестова. Покрени их пре верзије.
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| Променљива | Ради |
|---|---|
HOLYARRS_FAULT_OUT |
Фајл у који покретања са падовима пишу своју табелу |
HOLYARRS_RESTART_TIMING, HOLYARRS_RESTART_TIMING_OUT |
Укључују мерење времена од пада до пријаве и именују његов излазни фајл |
HOLYARRS_MEMORY, HOLYARRS_MEMORY_OUT |
Укључују покретања за меморију и именују њихов излазни фајл |
HOLYARRS_CRASH_RUNS, HOLYARRS_CRASH_SEED |
Рунде и seed за петљу пада у app/backend/internal/mediafiles/dbtests (crash_test.go), која се прескаче под -short |
Замене за сервере и променљиве
End-to-end тестови покрећу замене за сервере преузимача, извора и сервер метаподатака, тако да ниједан тест не додирује прави сервис. Тестови постављају променљиве као што су HOLYARRS_TMDB_URL, HOLYARRS_MUSICBRAINZ_URL, HOLYARRS_PLEX_URL и HOLYARRS_QBITTORRENT_URL да упуте програм на њих. Права инсталација их никада не треба.
API уговор има своје тестове. TestOpenAPIGenerated пада када се openapi.json разиђе са рутама, а снимак табеле рута у tools/structurecheck/testdata пада на свакој додатој, уклоњеној или премештеној рути.
Повезане странице
Линк до Повезане страницеHolyArrs је бесплатан. Ако ти је уштедео време, остави звездицу на GitHub-у, постани спонзор или купи ми кафу.