Frameworks
WebdriverIO Runner bietet integrierte Unterstützung für Mocha, Jasmineund Cucumber.js. Sie können es auch mit Drittanbieter-Open-Source-Frameworks, wie Serenity/JS integrieren.
Um WebdriverIO mit einem Testframework zu integrieren, benötigen Sie ein Adapterpaket, das auf NPM verfügbar ist. Beachten Sie, dass das Adapterpaket am selben Speicherort installiert werden muss, an dem WebdriverIO installiert ist. Wenn Sie also WebdriverIO global installiert haben, stellen Sie sicher, dass Sie auch das Framework-Adapterpaket global installieren.
Durch die Integration von WebdriverIO in ein Test-Framework können Sie über die globale browser
Variable in Ihren Spezifikationsdateien oder Schrittdefinitionen auf die WebdriverIO-Instanz zugreifen. Beachten Sie, dass WebdriverIO sich auch um das Instanziieren und Beenden der Selenium-Sitzung kümmert, so dass Sie es nicht selbst tun müssen selbst.
Verwendung von Mocha
Installieren Sie zuerst das Adapterpaket von NPM:
- npm
- Yarn
- pnpm
npm install @wdio/mocha-framework --save-dev
yarn add @wdio/mocha-framework --dev
pnpm add @wdio/mocha-framework --save-dev
Standardmäßig stellt WebdriverIO eine Assertion-Library bereit, die Sie direkt nutzen können:
describe('my awesome website', () => {
it('should do some assertions', async () => {
await browser.url('https://webdriver.io')
await expect(browser).toHaveTitle('WebdriverIO · Next-gen browser and mobile automation test framework for Node.js | WebdriverIO')
})
})
WebdriverIO unterstützt Mochas BDD
(Standard), TDD
und QUnit
Interfaces.
Wenn Sie Ihre Spezifikationen gerne im TDD-Stil schreiben, setzen Sie die Eigenschaft ui
in Ihrer Konfiguration mochaOpts
auf tdd
. Jetzt sollten Ihre Testdateien wie folgt geschrieben sein:
suite('my awesome website', () => {
test('should do some assertions', async () => {
await browser.url('https://webdriver.io')
await expect(browser).toHaveTitle('WebdriverIO · Next-gen browser and mobile automation test framework for Node.js | WebdriverIO')
})
})
Wenn Sie andere Mocha-spezifische Einstellungen definieren möchten, können Sie dies mit dem Schlüssel mochaOpts
in Ihrer Konfigurationsdatei tun. Eine Liste aller Optionen finden Sie auf der Mocha-Projektwebsite.
Hinweis: WebdriverIO unterstützt nicht die veraltete Verwendung von done
Callbacks in Mocha:
it('should test something', (done) => {
done() // throws "done is not a function"
})
Mocha-Optionen
Die folgenden Optionen können in Ihrer wdio.conf.js
angewendet werden, um Ihre Mocha-Umgebung zu konfigurieren. Hinweis: Nicht alle Optionen werden unterstützt, z. B. führt die Anwendung der Option parallel
zu einem Fehler, da der WDIO-Testrunner seine eigene Art hat, Tests parallel auszuführen. Die folgenden Optionen werden jedoch unterstützt:
require
Die Option require
ist nützlich, wenn Sie grundlegende Funktionen hinzufügen oder erweitern möchten (WebdriverIO-Framework-Option).
Type: string|string[]
Default: []
compilers
Verwenden Sie die angegebenen Module, um Dateien zu kompilieren. Compiler werden ausgeführt bevor die von require
definierten Fixtures (WebdriverIO-Framework-Option).
Type: string[]
Default: []
allowUncaught
Propagieren Sie nicht erfasste Fehler.
Type: boolean
Default: false
bail
Tests beenden nach dem ersten Fehlschlag.
Type: boolean
Default: false
checkLeaks
Suchen Sie nach globalen Variablenlecks.
Type: boolean
Default: false
delay
Ausführung der Root-Suite verzögern.
Type: boolean
Default: false
fgrep
Fokussieren der Tests, die diesem Pattern folgen.
Type: string
Default: null
forbidOnly
Tests, die mit only
markiert sind, werden als Fehler angegeben.
Type: boolean
Default: false
forbidPending
Brechen Sie den Test-Lauf beim ersten Fehler ab.
Type: boolean
Default: false
fullTrace
Vollständiger Stacktrace bei Fehler anzeigen.
Type: boolean
Default: false
global
Mocha Variablen im Globalen Scope injizieren.
Type: string[]
Default: []
grep
Filter Tests, die dem Regulären Ausdruck entsprechen.
Type: RegExp|string
Default: null
invert
Testfilter-Matches umkehren.
Type: boolean
Default: false