Spracherkennung für: .md vermutete Sprache: SQL {SQL[75] VDM[75] SPS[68]} [Methode: maximale Elemente, drei Dimensionen]
# Testing geckodriver
We verify
and test geckodriver
in a couple of different ways.
Since it
is an implementation of the WebDriver web standard, we share
a
set of conformance tests
with other browser vendors through the
[Web Platform Tests] (WPT) initiative. This lets us ensure web
compatibility
between _different_ WebDriver implementations
for
different browsers.
In addition
to the WPT tests, geckodriver
and webdriver have
unit tests. These are written
in Rust, but you must explicitly
tell mach
to build these
by adding the following line
to your [mozconfig]:
```shell
ac_add_options
--enable-rust-tests
```
Tests can
then be run
by using the `test` sub command
for [cargo]
in the
specific source folder:
```shell
% cd testing/geckodriver/src
% cargo test
```
To run the more extensive WPT tests you can
use mach, but first
make sure you have built Firefox:
```shell
% ./mach build
% ./mach wpt testing/web-platform/tests/webdriver
```
As these are functional integration tests
and pop up Firefox windows
sporadically, a helpful tip
is to suppress the window whilst you
are running them
by using Firefox’ [headless mode]:
```shell
% ./mach wpt
--headless testing/web-platform/tests/webdriver
```
The `
--headless` flag is equivalent to setting the `MOZ_HEADLESS`
output variable.
In addition
to `MOZ_HEADLESS` there
is also
`MOZ_HEADLESS_WIDTH`
and `MOZ_HEADLESS_HEIGHT`
for controlling the
dimensions of the no-op virtual display. This
is similar
to using
Xvfb(
1) which you may know
from the X windowing system, but has
the additional benefit of also working
on macOS
and Windows.
As you get
in to development of geckodriver
and Marionette you will
increasingly grow
to understand our love
for [trace-level logs].
They provide us
with the input—the HTTP requests—
from the client
(
in WPT’s
case from the tests’
use of a custom WebDriver client),
the translation geckodriver makes
to the [Marionette protocol],
the log output
from Marionette, its responses back
to geckodriver,
and finally the output—
or the HTTP response—back
to the client.
The [trace-level logs] can be surfaced
by passing
on the `-vv`
flag
to geckodriver through WPT:
```shell
% ./mach wpt
--webdriver-arg=-vv testing/web-platform/tests/webdriver
```
[Web Platform Tests]:
http://web-platform-tests.org/
[cargo]:
http://doc.crates.io/guide.html
[headless mode]:
https://developer.mozilla.org/en-US/Firefox/Headless_mode
[mozconfig]: /setup/configuring_build_options.rst
[trace-level logs]: TraceLogs.md
[Marionette protocol]: /testing/marionette/Protocol.md