Relevanztests für die Discovery Suche der SBB.
See Ziele.md
- nodejs:
18+
Zur Überprüfung ob node
vorhanden ist:
node -v
Erwartetes Ergebnis (Beispiel):
v18.16.0
Dieses Repo klonen, und dann denn geklonten Ordner in der Kommandozeile öffnen:
npm i
- Für die Installation via NPM müssen die Proxy Einstellungen der lokalen Umgebung manuell angepasst werden.
$env:HTTP_PROXY = "http://your.proxy.here:3128"
$env:HTTPS_PROXY = "https://your.proxy.here:3218"
$env:NO_PROXY = "localhost, 127.0.0.1, 10.0.0.0/8, …"
Die Proxy Einstellungen für die direkte Kommunikation mit dem Findex können in einer cypress.env.json
hinterlegt werden.
{
"NO_PROXY": "localhost, 127.0.0.1, 10.0.0.0/8, …",
"HTTP_PROXY": "http://your.proxy.here:3128",
"HTTPS_PROXY": "https://your.proxy.here:3218"
}
- Strikten SSL modus deaktivieren (einmalig)
Da der Proxy über http
aufgerufen wird, muss unter Umständen der strikte ssl modus deaktiviert werden.
npm set strict-ssl false
- Installation via NPM
Dieses Repo klonen, und dann die Kommandozeile in dem geklonten Ordner öffnen:
npm i
Zum Ausführen der Tests den geklonten Ordner in der Kommandozeile öffnen:
Ohne GUI:
npx cypress run
Mit GUI:
npx cypress open
Per Default laufen die Tests gegen den Ranking1 testserver. Die searchspecs.yml
befindet sich im Verzeichnis: /var/www/vufind/local/config/vufind
Für die Reproduktion der CI Testläufe gegen den produktiven Stabikat z.Bsp der simple.cs.js
spec:
- Ändere
BASE_URL
zum Stabikat - Spezifiziere welche Testdatei via
--spec
, und - nur Tests ohne tag, via
--env
CYPRESS_BASE_URL=https://stabikat.de/search/ npx cypress run --spec cypress/e2e/simple.cy.js --env grepUntagged=true
npx cypress open --config baseUrl=https://stabikat.de/search/ --env grepUntagged=true
Für weitere Optionen siehe Cypress command-line
Für offene issues, mit Test die in beiden Instanzen (noch) nicht laufen nutze: .skip
.
Tests die auf dem Testserver grün sind, aber im produktiven Stabikat rot werden durch den @next
tag gekennzeichnet:
-
@next
// This works on test environment but not on stabi it('CJK author search should return translations', {tags: ['@next']}, () => { cy.get('.record-list') .contains('Yan, Lianke') }) // This works on both it('CJK author search should match latinized family name', () => { cy.get('.record-list') .contains('Yan') })
Wenn die nötigen Änderungen der searchpsec.yaml
im Stabikat live gegangen sind, müssen die entsprechenden @next
Tags entfernt werden. Folgender Befehl führ nur die tests mit tag aus:
npx cypress run --config baseUrl=https://stabikat.de/search/ --env grepTags=@next
Anschliessend bei allen grünen Tests den Tag entfernen.
Um die yaml Dateien im vufind/
Ordner auf Syntaxfehler zu überprüfen:
npm run lint
Dieser Test wird auf GitHub automatisch ausgeführt.
Die Datei cypress/e2e/simple.cy.js
beinhaltet einen Selbsttest. Zur Prolembehebung können diese unskipped werden.
Sollte ein eine Browser spezifische Warnung erscheinen, verhindern Windows Systemeinstellungen die automatisierte Nutzung des gewählten Browsers.
Cypress detected policy settings on your computer that may cause issues.
The following policies were detected that may prevent Cypress from automating Chrome:
- HKEY_CURRENT_USER\Software\Policies\Google\Chrome\ProxySettings
For more information, see https://on.cypress.io/bad-browser-policy
In diese Fällen müssen Tests in Electron
ausgeführt werden.
see proxy above