gecko-dev/testing/marionette/harness
Henrik Skupin 38ed548903 Bug 1397675 - Immediately kill the process if no connection can be made after startup. r=maja_zf
When the binary gets launched we do not immediately kill the process if the
connection to Marionette server cannot be established within the given amount
of seconds. Instead "_handle_socket_failure" is getting called because
the utility method `raise_for_port` inappropriately uses the `@do_process_check`
decorator.

By removing the decorator the initial connection attempt can be handled
differently. As such the process if handled by Marionette will be immediately
killed. Currently we are waiting for the process to quit itself within 120s,
which will actually never happen due to no active session.

Further `start_session` defaults to a timeout of 60s which itself is problematic
for test harnesses using Marionette but controlling the binary themselves. In
those cases timeouts can happen often for slow starting browser processes like
debug builds. Instead this timeout should default to the `startup_timeout` value.

MozReview-Commit-ID: BZvX5KT45mK

--HG--
extra : rebase_source : 875807b75f0575a10dc9de3588237002fa6a5821
2017-09-07 15:40:19 +02:00
..
marionette_harness Bug 1397675 - Immediately kill the process if no connection can be made after startup. r=maja_zf 2017-09-07 15:40:19 +02:00
.flake8 Bug 1395126 - Support cascading configuration for flake8, r=bc 2017-08-29 17:32:31 -04:00
MANIFEST.in Bug 1345274 - marionette-harness sdist package misses certificate files. r=ato 2017-03-08 12:17:43 +01:00
README.rst
requirements.txt Bug 1366199 - Release marionette-harness 4.1 and marionette-driver 2.3.0. r=maja_zf 2017-06-28 10:18:13 -07:00
setup.py Bug 1345274 - marionette-harness sdist package misses certificate files. r=ato 2017-03-08 12:17:43 +01:00

marionette-harness
==================

Marionette is an automation driver for Mozilla's Gecko engine. It can remotely
control either the UI or the internal JavaScript of a Gecko platform, such as
Firefox. It can control both the chrome (i.e. menus and functions) or the
content (the webpage loaded inside the browsing context), giving a high level
of control and ability to replicate user actions. In addition to performing
actions on the browser, Marionette can also read the properties and attributes
of the DOM.

The marionette_harness package contains the test runner for Marionette, and
allows you to run automated tests written in Python for Gecko based
applications. Therefore it offers the necessary testcase classes, which are
based on the unittest framework.

For more information and the repository please checkout:

- home and docs: https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette


Example
-------

The following command will run the tests as specified via a manifest file, or
test path, or test folder in Firefox:

    marionette --binary %path_to_firefox% [manifest_file | test_file | test_folder]

To get an overview about all possible option run `marionette --help`.