mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
build: add webdriver build rule
Sets up a build rule to use Selenium Webdriver for e2e tests.
(cherry picked from commit 4d2dc1fb08)
This commit is contained in:
committed by
Jessica Janiuk
parent
efbe456748
commit
31c624e203
@@ -1,27 +0,0 @@
|
||||
load("@devinfra//bazel/spec-bundling:index.bzl", _spec_bundle = "spec_bundle")
|
||||
load("@rules_browsers//protractor_test:index.bzl", _protractor_test = "protractor_test")
|
||||
|
||||
def protractor_web_test_suite(name, deps, **kwargs):
|
||||
_spec_bundle(
|
||||
name = "%s_bundle" % name,
|
||||
deps = deps,
|
||||
external = ["protractor", "selenium-webdriver"],
|
||||
)
|
||||
|
||||
_protractor_test(
|
||||
name = name,
|
||||
deps = [":%s_bundle" % name],
|
||||
extra_config = {
|
||||
"useAllAngular2AppRoots": True,
|
||||
"allScriptsTimeout": 120000,
|
||||
"getPageTimeout": 120000,
|
||||
"jasmineNodeOpts": {
|
||||
"defaultTimeoutInterval": 120000,
|
||||
},
|
||||
},
|
||||
data = [
|
||||
"//:node_modules/protractor",
|
||||
"//:node_modules/selenium-webdriver",
|
||||
],
|
||||
**kwargs
|
||||
)
|
||||
@@ -0,0 +1,51 @@
|
||||
load("@devinfra//bazel/spec-bundling:index.bzl", "spec_bundle")
|
||||
load("@rules_browsers//server_test:index.bzl", "server_test")
|
||||
load("//tools/bazel:jasmine_test.bzl", "jasmine_test")
|
||||
|
||||
def webdriver_test(name, deps, server, tags = [], data = [], external = [], **kwargs):
|
||||
spec_bundle(
|
||||
name = "%s_bundle" % name,
|
||||
deps = deps,
|
||||
external = ["selenium-webdriver"] + external,
|
||||
platform = "node",
|
||||
config = {
|
||||
"banner": {
|
||||
"js": """import {createRequire as __cjsCompatRequire} from 'module';
|
||||
const require = __cjsCompatRequire(import.meta.url);
|
||||
const __filename = import.meta.filename;
|
||||
const __dirname = import.meta.dirname;""",
|
||||
},
|
||||
"target": ["ES2022"],
|
||||
"format": "esm",
|
||||
},
|
||||
)
|
||||
|
||||
jasmine_test(
|
||||
name = "%s_jasmine_test" % name,
|
||||
tags = tags + ["manual"],
|
||||
data = data + [
|
||||
":%s_bundle" % name,
|
||||
"@rules_browsers//browsers/chromium",
|
||||
"//:node_modules/selenium-webdriver",
|
||||
],
|
||||
env = {
|
||||
"CHROME_HEADLESS_BIN": "$(CHROME-HEADLESS-SHELL)",
|
||||
"CHROMEDRIVER": "$(CHROMEDRIVER)",
|
||||
},
|
||||
toolchains = ["@rules_browsers//browsers/chromium:toolchain_alias"],
|
||||
**kwargs
|
||||
)
|
||||
|
||||
server_test(
|
||||
name = "%s_chromium" % name,
|
||||
server = server,
|
||||
test = ":%s_jasmine_test" % name,
|
||||
tags = tags + ["e2e"],
|
||||
)
|
||||
|
||||
native.test_suite(
|
||||
name = name,
|
||||
tests = [
|
||||
":%s_chromium" % name,
|
||||
],
|
||||
)
|
||||
+2
-2
@@ -14,7 +14,7 @@ load("//tools/bazel:esbuild.bzl", _esbuild = "esbuild", _esbuild_checked_in = "e
|
||||
load("//tools/bazel:jasmine_test.bzl", _angular_jasmine_test = "angular_jasmine_test", _jasmine_test = "jasmine_test", _zone_compatible_jasmine_test = "zone_compatible_jasmine_test", _zoneless_jasmine_test = "zoneless_jasmine_test")
|
||||
load("//tools/bazel:js_defs.bzl", _js_binary = "js_binary", _js_run_binary = "js_run_binary", _js_test = "js_test")
|
||||
load("//tools/bazel:npm_packages.bzl", _ng_package = "ng_package", _npm_package = "npm_package")
|
||||
load("//tools/bazel:protractor_test.bzl", _protractor_web_test_suite = "protractor_web_test_suite")
|
||||
load("//tools/bazel:webdriver_test.bzl", _webdriver_test = "webdriver_test")
|
||||
load("//tools/bazel:tsec.bzl", _tsec_test = "tsec_test")
|
||||
load("//tools/bazel:web_test.bzl", _ng_web_test_suite = "ng_web_test_suite", _web_test = "web_test", _zoneless_web_test_suite = "zoneless_web_test_suite")
|
||||
|
||||
@@ -36,7 +36,7 @@ web_test = _web_test
|
||||
sass_binary = _sass_binary
|
||||
sass_library = _sass_library
|
||||
npm_sass_library = _npm_sass_library
|
||||
protractor_web_test_suite = _protractor_web_test_suite
|
||||
webdriver_test = _webdriver_test
|
||||
esbuild_checked_in = _esbuild_checked_in
|
||||
http_server = _http_server
|
||||
api_golden_test = _api_golden_test
|
||||
|
||||
Reference in New Issue
Block a user