Protractor rules for Bazel
The Protractor rules run tests under the Protractor framework with Bazel.
Installation
Add the @bazel/protractor
npm package to your devDependencies
in package.json
.
Known issues with running Chromium for macOS/Windows in Bazel
For macOS and Windows, Chromium comes with files that contain spaces in their file names. This breaks runfile tree
creation within Bazel due to a bug. There are various workarounds that allow for Chromium on these platforms:
- Instruct Bazel to automatically disable runfile tree creation if not needed. More details here
- Instruct Bazel to use an alternative experimental approach for creating runfile trees. More details here
protractor_web_test
USAGE
protractor_web_test(name, configuration, on_prepare, srcs, deps, data, server, tags, peer_deps,
protractor_entry_point, kwargs)
Runs a protractor test in a browser.
PARAMETERS
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 []
peer_deps
List of peer npm deps required by protractor_web_test
Defaults to ["@npm//@bazel/protractor", "@npm//protractor"]
protractor_entry_point
A label providing the protractor entry point
Default to :node_modules/protractor/bin/protractor
.
Defaults to Label("@npm//:node_modules/protractor/bin/protractor")
kwargs
passed through to protractor_web_test
protractor_web_test_suite
USAGE
protractor_web_test_suite(name, browsers, web_test_data, wrapped_test_tags, kwargs)
Defines a test_suite of web_test targets that wrap a protractor_web_test target.
PARAMETERS
name
The base name of the test
browsers
A sequence of labels specifying the browsers to use.
Defaults to None
web_test_data
Data dependencies for the wrapper web_test targets.
Defaults to []
wrapped_test_tags
A list of test tag strings to use for the wrapped
karma_web_test target.
Defaults to ["manual", "noci"]
kwargs
Arguments for the wrapped karma_web_test target.