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.