title: Protractor layout: default stylesheet: docs

Protractor rules for Bazel

WARNING: this is beta-quality software. Breaking changes are likely. Not recommended for production use without expert support.

The Protractor rules run tests under the Protractor framework with Bazel.

Installation

Add the @bazel/protractor npm package to your devDependencies in package.json.

Your WORKSPACE should declare a yarn_install or npm_install rule named npm. It should then install the rules found in the npm packages using the `install_bazel_dependencies' function. See https://github.com/bazelbuild/rules_nodejs/#quickstart

This causes the @bazel/protractor package to be installed as a Bazel workspace named npm_bazel_protractor.

protractor_web_test

Runs a protractor test in a browser.

Usage

protractor_web_test(name, configuration, on_prepare, srcs, deps, data, server, tags, protractor, protractor_entry_point, kwargs)

name

The name of the test

configuration

Protractor configuration file.

Defaults to None

on_prepare

A file with a node.js script to run once before all tests run. If the script exports a function which returns a promise, protractor will wait for the promise to resolve before beginning tests.

Defaults to None

srcs

JavaScript source files

Defaults to []

deps

Other targets which produce JavaScript such as ts_library

Defaults to []

data

Runtime dependencies

Defaults to []

server

Optional server executable target

Defaults to None

tags

Standard Bazel tags, this macro adds one for ibazel

Defaults to []

protractor

A label providing the @bazel/protractor npm dependency.

Defaults to "@npm//@bazel/protractor"

protractor_entry_point

A label providing the @bazel/protractor entry point.

Defaults to "@npm//:node_modules/@bazel/protractor/protractor.js"

kwargs

passed through to _protractor_web_test

protractor_web_test_suite

Defines a test_suite of web_test targets that wrap a protractor_web_test target.

Usage

protractor_web_test_suite(name, configuration, on_prepare, srcs, deps, data, server, browsers, args, browser_overrides, config, flaky, local, shard_count, size, tags, test_suite_tags, timeout, visibility, web_test_data, wrapped_test_tags, protractor, protractor_entry_point, remaining_keyword_args)

name

The base name of the test.

configuration

Protractor configuration file.

Defaults to None

on_prepare

A file with a node.js script to run once before all tests run. If the script exports a function which returns a promise, protractor will wait for the promise to resolve before beginning tests.

Defaults to None

srcs

JavaScript source files

Defaults to []

deps

Other targets which produce JavaScript such as ts_library

Defaults to []

data

Runtime dependencies

Defaults to []

server

Optional server executable target

Defaults to None

browsers

A sequence of labels specifying the browsers to use.

Defaults to None

args

Args for web_test targets generated by this extension.

Defaults to None

browser_overrides

Dictionary; optional; default is an empty dictionary. A dictionary mapping from browser names to browser-specific web_test attributes, such as shard_count, flakiness, timeout, etc. For example: {‘//browsers:chrome-native’: {‘shard_count’: 3, ‘flaky’: 1} ‘//browsers:firefox-native’: {‘shard_count’: 1, ‘timeout’: 100}}.

Defaults to None

config

Label; optional; Configuration of web test features.

Defaults to None

flaky

A boolean specifying that the test is flaky. If set, the test will be retried up to 3 times (default: 0)

Defaults to None

local

boolean; optional.

Defaults to None

shard_count

The number of test shards to use per browser. (default: 1)

Defaults to None

size

A string specifying the test size. (default: ‘large’)

Defaults to None

tags

A list of test tag strings to apply to each generated web_test target. This macro adds a couple for ibazel.

Defaults to []

test_suite_tags

A list of tag strings for the generated test_suite.

Defaults to None

timeout

A string specifying the test timeout (default: computed from size)

Defaults to None

visibility

List of labels; optional.

Defaults to None

web_test_data

Data dependencies for the web_test.

Defaults to []

wrapped_test_tags

A list of test tag strings to use for the wrapped test

Defaults to None

protractor

Protractor entry_point. Defaults to @npm//:node_modules/protractor/bin/protractor but should be changed to @your_npm_workspace//:node_modules/protractor/bin/protractor if you are not using @npm for your npm dependencies.

Defaults to "@npm//@bazel/protractor"

protractor_entry_point

Defaults to "@npm//:node_modules/@bazel/protractor/protractor.js"

remaining_keyword_args

Arguments for the wrapped test target.