சோதனை
அமைவு
அனுப்பும் முன் உங்கள் கணினியில் மாற்றத்தைச் சோதிக்கவும்.
தொடங்கும் முன்
தொடங்கும் முன் இணைப்பு-
அமைவு பக்கத்தை முடிக்கவும். Go சோதனைகள் உருவாக்கப்பட்ட web app-ஐ வழங்குகின்றன, அதனால் முதலில் அதை உருவாக்கவும்.
-
சோதனை browser-ஐ ஒருமுறை நிறுவவும்:
Terminal window npx --prefix app/frontend playwright install chromium
அன்றாடச் சோதனைகளை இயக்குதல்
அன்றாடச் சோதனைகளை இயக்குதல் இணைப்பு-
Go code-ஐ உருவாக்கி vet செய்யவும்:
Terminal window go build ./...go vet ./... -
Go சோதனைகளை இயக்கவும்:
Terminal window go test ./... -
Web app-ஐச் சரிபார்த்து சோதிக்கவும்:
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 இரண்டிலும், கூடவே race detector உடன் ஒரு இயக்கமும் (go test -race ./...).
End-to-end சோதனைகளை இயக்குதல்
End-to-end சோதனைகளை இயக்குதல் இணைப்புEnd-to-end சோதனைகள் உண்மையான நிரலுக்கு எதிராக உண்மையான browser-ஐ இயக்குகின்றன. நீங்கள் தொட்ட பகுதிக்கான project-ஐ இயக்கவும்:
npm --prefix app/frontend run e2e -- --project=moviesஇந்த இயக்கம் புதிய கட்டமைவு அடைவுடன் தன் சொந்த HolyArrs-ஐத் தொடங்கும். setup project முதலில் உரிமையாளரை உருவாக்கும், மற்ற project-களில் பெரும்பாலானவை அதற்காகக் காத்திருக்கும். பதிப்பு வெளியீட்டுக்கு முன் --project இல்லாமல் முழுத் தொகுப்பையும் இயக்கவும்.
தேர்வுகள்
தேர்வுகள் இணைப்புஎந்த project-களை இயக்குவது
எந்த project-களை இயக்குவது இணைப்பு| நீங்கள் மாற்றியது | இயக்க வேண்டியது |
|---|---|
| திரைப்படங்கள் | movies |
| தொடர்கள் | shows |
| கோரிக்கைகள் | requests, lists, reports |
| பதிவிறக்கங்கள் | sources, downloaders, downloads |
| உள்நுழைவும் பயனர்களும் | accounts, kid |
| நலமும் அட்டவணைகளும் | schedules, controls |
| பக்க அமைப்பு | desktop, phone, a11y |
Project-கள் app/frontend/playwright.config.ts-இல் பெயரிடப்பட்டுள்ளன. மற்றொன்றைச் சார்ந்த project, அதை முதலில் இயக்கும்.
புதிய சோதனை எங்கே போகிறது
புதிய சோதனை எங்கே போகிறது இணைப்பு| வகை | இடம் |
|---|---|
| Go | அது சோதிக்கும் கோப்பின் அருகில் |
| Web unit | அதன் கோப்பின் அருகில், name.test.ts ஆக |
| End-to-end | app/tests/<module>/ |
உண்மையான வெளிச் சேவையை ஒருபோதும் அழைக்க வேண்டாம். app/tests/fakes-இல் ஒரு மாற்றுச் சேவையைச் சேர்க்கவும். உங்கள் கணினியில் மட்டும் தேறும் சோதனை பழுதானது.
இது வேலை செய்யவில்லை என்றால்
இது வேலை செய்யவில்லை என்றால் இணைப்புஅறிகுறி. ஒரு structure சோதனை தோல்வியடைகிறது. காரணம். செய்தி கோப்பையும் நீங்கள் மீறிய விதியையும் குறிப்பிடும். தீர்வு. Code-ஐ நகர்த்தவும், அல்லது மேல் module-இடமிருந்து எளிய தரவை அனுப்பவும். Modules பக்கத்தைப் பார்க்கவும்.
அறிகுறி. End-to-end சோதனைகள் தொடங்கவில்லை.
காரணம். சோதனை browser நிறுவப்படவில்லை.
தீர்வு. மேலே உள்ள playwright install வரியை இயக்கவும்.
அறிகுறி. பக்கங்கள் இல்லை என்று Go சோதனைகள் தோல்வியடைகின்றன.
காரணம். Web app உருவாக்கப்படவில்லை.
தீர்வு. npm --prefix app/frontend run build என்பதை இயக்கவும்.
நிபுணர்களுக்கு
நிபுணர்களுக்கு இணைப்புBuild tags
Tag உள்ள ஒரு சோதனை, சாதாரண go test ./...-இல் தவிர்க்கப்படும். அதை இயக்க -tags <tag> கொடுக்கவும்.
| Tag | கொண்டிருப்பது |
|---|---|
structure |
tools/structurecheck-இல் உள்ள அடுக்கு, கோப்பு அமைப்பு, SQL இடம், கருத்து விதிகள் |
measure |
பதிவிறக்க நேரச் சோதனைகள் |
lab |
சோதனை lab-இல் உண்மையான பயன்பாடுகளுக்கு எதிரான சோதனைகள். அவை HOLYARRS_LAB_*-ஐப் படிக்கும், அவை அமைக்கப்படாவிட்டால் தவிர்க்கப்படும் |
labms, livesubs |
Media server-கள், நேரடி வசனத் தளங்களுக்கான lab இயக்கங்கள் |
நீண்ட மற்றும் fault இயக்கங்கள்
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 |
Fault இயக்கங்கள் தம் அட்டவணையை எழுதும் கோப்பு |
HOLYARRS_RESTART_TIMING, HOLYARRS_RESTART_TIMING_OUT |
Crash-இலிருந்து உள்நுழைவு வரையிலான நேரத்தை இயக்கி, அதன் வெளியீட்டுக் கோப்பைப் பெயரிடும் |
HOLYARRS_MEMORY, HOLYARRS_MEMORY_OUT |
நினைவக இயக்கங்களை இயக்கி, அவற்றின் வெளியீட்டுக் கோப்பைப் பெயரிடும் |
HOLYARRS_CRASH_RUNS, HOLYARRS_CRASH_SEED |
app/backend/internal/mediafiles/dbtests-இல் (crash_test.go) உள்ள crash loop-இன் சுற்றுகளும் seed-உம். இது -short-இல் தவிர்க்கப்படும் |
மாற்று server-களும் மாறிகளும்
End-to-end சோதனைகள் பதிவிறக்கிகள், மூலங்கள், metadata server ஆகியவற்றுக்கு மாற்று server-களைத் தொடங்குகின்றன, அதனால் எந்தச் சோதனையும் உண்மையான சேவையை அடைவதில்லை. நிரலை அவற்றின் பக்கம் திருப்ப, சோதனைகள் HOLYARRS_TMDB_URL, HOLYARRS_MUSICBRAINZ_URL, HOLYARRS_PLEX_URL, HOLYARRS_QBITTORRENT_URL போன்ற மாறிகளை அமைக்கின்றன. உண்மையான நிறுவலுக்கு அவை ஒருபோதும் தேவையில்லை.
API ஒப்பந்தத்துக்குத் தனிச் சோதனைகள் உள்ளன. openapi.json routes-இலிருந்து விலகினால் TestOpenAPIGenerated தோல்வியடையும், tools/structurecheck/testdata-இல் உள்ள route அட்டவணை snapshot, சேர்க்கப்பட்ட, நீக்கப்பட்ட அல்லது நகர்த்தப்பட்ட எந்த route-க்கும் தோல்வியடையும்.
தொடர்புடையவை
தொடர்புடையவை இணைப்புHolyArrs இலவசம். இது உங்கள் நேரத்தைச் சேமித்திருந்தால், GitHub-இல் நட்சத்திரம் இடுங்கள், ஆதரவளியுங்கள் அல்லது எனக்கு ஒரு காபி வாங்கித் தாருங்கள்.