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
protractor_web_test(name, configuration, on_prepare, srcs, deps, data, server, tags, protractor, protractor_entry_point, kwargs)
Runs a protractor test in a browser.
Parameters
name |
required.
The name of the test
|
configuration |
optional. default is None
Protractor configuration file.
|
on_prepare |
optional. default is None
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.
|
srcs |
optional. default is []
JavaScript source files
|
deps |
optional. default is []
Other targets which produce JavaScript such as `ts_library`
|
data |
optional. default is []
Runtime dependencies
|
server |
optional. default is None
Optional server executable target
|
tags |
optional. default is []
Standard Bazel tags, this macro adds one for ibazel
|
protractor |
optional. default is "@npm//@bazel/protractor"
A label providing the @bazel/protractor npm dependency.
|
protractor_entry_point |
optional. default is "@npm//:node_modules/@bazel/protractor/protractor.js"
A label providing the @bazel/protractor entry point.
|
kwargs |
optional.
passed through to `_protractor_web_test`
|
protractor_web_test_suite
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)
Defines a test_suite of web_test targets that wrap a protractor_web_test target.
Parameters
name |
required.
The base name of the test.
|
configuration |
optional. default is None
Protractor configuration file.
|
on_prepare |
optional. default is None
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.
|
srcs |
optional. default is []
JavaScript source files
|
deps |
optional. default is []
Other targets which produce JavaScript such as `ts_library`
|
data |
optional. default is []
Runtime dependencies
|
server |
optional. default is None
Optional server executable target
|
browsers |
optional. default is ["@io_bazel_rules_webtesting//browsers:chromium-local"]
A sequence of labels specifying the browsers to use.
|
args |
optional. default is None
Args for web_test targets generated by this extension.
|
browser_overrides |
optional. default is None
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}}.
|
config |
optional. default is None
Label; optional; Configuration of web test features.
|
flaky |
optional. default is None
A boolean specifying that the test is flaky. If set, the test will
be retried up to 3 times (default: 0)
|
local |
optional. default is None
boolean; optional.
|
shard_count |
optional. default is None
The number of test shards to use per browser. (default: 1)
|
size |
optional. default is None
A string specifying the test size. (default: 'large')
|
tags |
optional. default is []
A list of test tag strings to apply to each generated web_test target.
This macro adds a couple for ibazel.
|
test_suite_tags |
optional. default is None
A list of tag strings for the generated test_suite.
|
timeout |
optional. default is None
A string specifying the test timeout (default: computed from size)
|
visibility |
optional. default is None
List of labels; optional.
|
web_test_data |
optional. default is []
Data dependencies for the web_test.
|
wrapped_test_tags |
optional. default is None
A list of test tag strings to use for the wrapped test
|
protractor |
optional. default is "@npm//@bazel/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.
|
protractor_entry_point |
optional. default is "@npm//:node_modules/@bazel/protractor/protractor.js"
|
remaining_keyword_args |
optional.
Arguments for the wrapped test target.
|