зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1296067 - Add mach test package integration for marionette-test, r=armenzg
This makes it possible to run |mach marionette-test| from a test package (and therefore also an interactive loaner). MozReview-Commit-ID: Lxhe8KMQaWq --HG-- extra : rebase_source : ee2c01a80d863c2044d8d30b0e5116c8a9704253
This commit is contained in:
Родитель
68b11e8613
Коммит
a757814e36
|
@ -0,0 +1,68 @@
|
||||||
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
from functools import partial
|
||||||
|
|
||||||
|
from mach.decorators import (
|
||||||
|
CommandProvider,
|
||||||
|
Command,
|
||||||
|
)
|
||||||
|
|
||||||
|
parser = None
|
||||||
|
|
||||||
|
|
||||||
|
def run_marionette(context, **kwargs):
|
||||||
|
from marionette.runtests import (
|
||||||
|
MarionetteTestRunner,
|
||||||
|
MarionetteHarness
|
||||||
|
)
|
||||||
|
from mozlog.structured import commandline
|
||||||
|
|
||||||
|
|
||||||
|
args = argparse.Namespace(**kwargs)
|
||||||
|
|
||||||
|
if not args.binary:
|
||||||
|
args.binary = context.find_firefox()
|
||||||
|
|
||||||
|
test_root = os.path.join(context.package_root, 'marionette', 'tests')
|
||||||
|
if not args.tests:
|
||||||
|
args.tests = [os.path.join(test_root, 'testing', 'marionette', 'harness',
|
||||||
|
'marionette', 'tests', 'unit-tests.ini')]
|
||||||
|
|
||||||
|
normalize = partial(context.normalize_test_path, test_root)
|
||||||
|
args.tests = map(normalize, args.tests)
|
||||||
|
|
||||||
|
commandline.add_logging_group(parser)
|
||||||
|
parser.verify_usage(args)
|
||||||
|
|
||||||
|
args.logger = commandline.setup_logging("Marionette Unit Tests",
|
||||||
|
args,
|
||||||
|
{"mach": sys.stdout})
|
||||||
|
status = MarionetteHarness(MarionetteTestRunner, args=vars(args)).run()
|
||||||
|
return 1 if status else 0
|
||||||
|
|
||||||
|
|
||||||
|
def setup_marionette_argument_parser():
|
||||||
|
from marionette.runner.base import BaseMarionetteArguments
|
||||||
|
global parser
|
||||||
|
parser = BaseMarionetteArguments()
|
||||||
|
return parser
|
||||||
|
|
||||||
|
|
||||||
|
@CommandProvider
|
||||||
|
class MachCommands(object):
|
||||||
|
|
||||||
|
def __init__(self, context):
|
||||||
|
self.context = context
|
||||||
|
|
||||||
|
@Command(
|
||||||
|
'marionette-test', category='testing',
|
||||||
|
description='Run a Marionette test (Check UI or the internal JavaScript '
|
||||||
|
'using marionette).',
|
||||||
|
parser=setup_marionette_argument_parser)
|
||||||
|
def run_marionette_test(self, **kwargs):
|
||||||
|
return run_marionette(self.context, **kwargs)
|
|
@ -337,6 +337,7 @@ stage-marionette: make-stage-dir
|
||||||
$(NSINSTALL) -D $(MARIONETTE_DIR)/client
|
$(NSINSTALL) -D $(MARIONETTE_DIR)/client
|
||||||
@(cd $(topsrcdir)/testing/marionette/harness && tar --exclude marionette/tests $(TAR_CREATE_FLAGS) - *) | (cd $(MARIONETTE_DIR)/ && tar -xf -)
|
@(cd $(topsrcdir)/testing/marionette/harness && tar --exclude marionette/tests $(TAR_CREATE_FLAGS) - *) | (cd $(MARIONETTE_DIR)/ && tar -xf -)
|
||||||
@(cd $(topsrcdir)/testing/marionette/client && tar $(TAR_CREATE_FLAGS) - *) | (cd $(MARIONETTE_DIR)/client && tar -xf -)
|
@(cd $(topsrcdir)/testing/marionette/client && tar $(TAR_CREATE_FLAGS) - *) | (cd $(MARIONETTE_DIR)/client && tar -xf -)
|
||||||
|
cp $(topsrcdir)/testing/marionette/mach_test_package_commands.py $(MARIONETTE_DIR)
|
||||||
$(PYTHON) $(topsrcdir)/testing/marionette/harness/marionette/tests/print-manifest-dirs.py \
|
$(PYTHON) $(topsrcdir)/testing/marionette/harness/marionette/tests/print-manifest-dirs.py \
|
||||||
$(topsrcdir) \
|
$(topsrcdir) \
|
||||||
$(topsrcdir)/testing/marionette/harness/marionette/tests/unit-tests.ini \
|
$(topsrcdir)/testing/marionette/harness/marionette/tests/unit-tests.ini \
|
||||||
|
|
|
@ -42,6 +42,7 @@ SEARCH_PATHS = [
|
||||||
|
|
||||||
# Individual files providing mach commands.
|
# Individual files providing mach commands.
|
||||||
MACH_MODULES = [
|
MACH_MODULES = [
|
||||||
|
'marionette/mach_test_package_commands.py',
|
||||||
'mochitest/mach_test_package_commands.py',
|
'mochitest/mach_test_package_commands.py',
|
||||||
'reftest/mach_test_package_commands.py',
|
'reftest/mach_test_package_commands.py',
|
||||||
'tools/mach/mach/commands/commandinfo.py',
|
'tools/mach/mach/commands/commandinfo.py',
|
||||||
|
|
Загрузка…
Ссылка в новой задаче