| --- |
| 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`. |
| |
| [name]: https://bazel.build/docs/build-ref.html#name |
| [label]: https://bazel.build/docs/build-ref.html#labels |
| [labels]: https://bazel.build/docs/build-ref.html#labels |
| |
| |
| ## 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. |
| |
| |
| |
| |
| |