உள்ளடக்கத்திற்குச் செல்

சோதனை

அமைவு

அனுப்பும் முன் உங்கள் கணினியில் மாற்றத்தைச் சோதிக்கவும்.

  • அமைவு பக்கத்தை முடிக்கவும். Go சோதனைகள் உருவாக்கப்பட்ட web app-ஐ வழங்குகின்றன, அதனால் முதலில் அதை உருவாக்கவும்.

  • சோதனை browser-ஐ ஒருமுறை நிறுவவும்:

    Terminal window
    npx --prefix app/frontend playwright install chromium

அன்றாடச் சோதனைகளை இயக்குதல்

அன்றாடச் சோதனைகளை இயக்குதல் இணைப்பு
  1. Go code-ஐ உருவாக்கி vet செய்யவும்:

    Terminal window
    go build ./...
    go vet ./...
  2. Go சோதனைகளை இயக்கவும்:

    Terminal window
    go test ./...
  3. Web app-ஐச் சரிபார்த்து சோதிக்கவும்:

    Terminal window
    npm --prefix app/frontend run check
    npm --prefix app/frontend run lint
    npm --prefix app/frontend run test
  4. அடுக்கு மற்றும் கோப்பு அமைப்பு விதிகளை இயக்கவும்:

    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-ஐ இயக்கவும்:

Terminal window
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 இவற்றைச் சாதாரண சோதனைகளுக்கு மேல் இயக்குகிறது. பதிப்பு வெளியீட்டுக்கு முன் இவற்றை இயக்கவும்.

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
மாறி செய்வது
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-இல் நட்சத்திரம் இடுங்கள், ஆதரவளியுங்கள் அல்லது எனக்கு ஒரு காபி வாங்கித் தாருங்கள்.