Skip to content

Commit e040db7

Browse files
devversionjelbourn
authored andcommitted
build: fine grain runfile dependencies for e2e tests
Currently the e2e tests always include the `@angular/bazel` package in the runfiles. This is causing a signifcant performance issue as the bazel package brings in a lot of other packages resulting in a lot of files that need to be symlinked by bazel. Additionally duplication is avoided by having a macro for creating the test suite target. This allows us to easily make such changes in the future without having to go through all Bazel e2e targets.
1 parent a540edb commit e040db7

File tree

32 files changed

+87
-301
lines changed

32 files changed

+87
-301
lines changed

src/cdk-experimental/scrolling/BUILD.bazel

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package(default_visibility = ["//visibility:public"])
22

3-
load("//tools:defaults.bzl", "ng_e2e_test_library", "ng_module", "ng_test_library", "ng_web_test_suite", "protractor_web_test_suite")
3+
load("//tools:defaults.bzl", "ng_e2e_test_library", "ng_module", "ng_test_library", "ng_web_test_suite")
4+
load("//src/e2e-app:test_suite.bzl", "e2e_test_suite")
45

56
ng_module(
67
name = "scrolling",
@@ -43,16 +44,8 @@ ng_e2e_test_library(
4344
],
4445
)
4546

46-
protractor_web_test_suite(
47+
e2e_test_suite(
4748
name = "e2e_tests",
48-
configuration = "//src/e2e-app:protractor.conf.js",
49-
data = [
50-
"//tools/axe-protractor",
51-
"@npm//@angular/bazel",
52-
],
53-
on_prepare = "//src/e2e-app:start-devserver.js",
54-
server = "//src/e2e-app:devserver",
55-
tags = ["e2e"],
5649
deps = [
5750
":e2e_test_sources",
5851
"//src/cdk/testing/e2e",

src/cdk-experimental/testing/BUILD.bazel

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package(default_visibility = ["//visibility:public"])
22

3-
load("//tools:defaults.bzl", "ng_module", "ng_web_test_suite", "protractor_web_test_suite")
3+
load("//tools:defaults.bzl", "ng_module", "ng_web_test_suite")
4+
load("//src/e2e-app:test_suite.bzl", "e2e_test_suite")
45

56
ng_module(
67
name = "testing",
@@ -18,16 +19,8 @@ ng_web_test_suite(
1819
deps = ["//src/cdk-experimental/testing/tests:unit_test_sources"],
1920
)
2021

21-
protractor_web_test_suite(
22+
e2e_test_suite(
2223
name = "e2e_tests",
23-
configuration = "//src/e2e-app:protractor.conf.js",
24-
data = [
25-
"//tools/axe-protractor",
26-
"@npm//@angular/bazel",
27-
],
28-
on_prepare = "//src/e2e-app:start-devserver.js",
29-
server = "//src/e2e-app:devserver",
30-
tags = ["e2e"],
3124
deps = [
3225
"//src/cdk-experimental/testing/tests:e2e_test_sources",
3326
"@npm//protractor",

src/cdk/overlay/BUILD.bazel

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package(default_visibility = ["//visibility:public"])
22

33
load("@io_bazel_rules_sass//:defs.bzl", "sass_binary", "sass_library")
4+
load("//src/e2e-app:test_suite.bzl", "e2e_test_suite")
45
load(
56
"//tools:defaults.bzl",
67
"markdown_to_html",
78
"ng_e2e_test_library",
89
"ng_module",
910
"ng_test_library",
1011
"ng_web_test_suite",
11-
"protractor_web_test_suite",
1212
)
1313

1414
ng_module(
@@ -76,16 +76,8 @@ ng_e2e_test_library(
7676
],
7777
)
7878

79-
protractor_web_test_suite(
79+
e2e_test_suite(
8080
name = "e2e_tests",
81-
configuration = "//src/e2e-app:protractor.conf.js",
82-
data = [
83-
"//tools/axe-protractor",
84-
"@npm//@angular/bazel",
85-
],
86-
on_prepare = "//src/e2e-app:start-devserver.js",
87-
server = "//src/e2e-app:devserver",
88-
tags = ["e2e"],
8981
deps = [
9082
":e2e_test_sources",
9183
"//src/cdk/testing/e2e",

src/e2e-app/start-devserver.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const protractor = require('protractor');
2-
const utils = require('@angular/bazel/protractor-utils');
2+
const utils = require('@angular/bazel/src/protractor/utils');
33
const spawn = require('child_process').spawn;
44

55
/**

src/e2e-app/test_suite.bzl

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
load("//tools:defaults.bzl", "protractor_web_test_suite")
2+
3+
def e2e_test_suite(name, data = [], tags = ["e2e"], deps = []):
4+
protractor_web_test_suite(
5+
name = name,
6+
configuration = "//src/e2e-app:protractor.conf.js",
7+
data = [
8+
"//tools/axe-protractor",
9+
"@npm//:node_modules/@angular/bazel/src/protractor/utils/index.js",
10+
] + data,
11+
on_prepare = "//src/e2e-app:start-devserver.js",
12+
server = "//src/e2e-app:devserver",
13+
tags = tags,
14+
deps = deps,
15+
)

src/material-experimental/mdc-button/BUILD.bazel

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package(default_visibility = ["//visibility:public"])
22

33
load("@io_bazel_rules_sass//:defs.bzl", "sass_binary", "sass_library")
4-
load("//tools:defaults.bzl", "ng_e2e_test_library", "ng_module", "protractor_web_test_suite")
4+
load("//tools:defaults.bzl", "ng_e2e_test_library", "ng_module")
5+
load("//src/e2e-app:test_suite.bzl", "e2e_test_suite")
56

67
ng_module(
78
name = "mdc-button",
@@ -80,16 +81,8 @@ ng_e2e_test_library(
8081
],
8182
)
8283

83-
protractor_web_test_suite(
84+
e2e_test_suite(
8485
name = "e2e_tests",
85-
configuration = "//src/e2e-app:protractor.conf.js",
86-
data = [
87-
"//tools/axe-protractor",
88-
"@npm//@angular/bazel",
89-
],
90-
on_prepare = "//src/e2e-app:start-devserver.js",
91-
server = "//src/e2e-app:devserver",
92-
tags = ["e2e"],
9386
deps = [
9487
":e2e_test_sources",
9588
"//src/cdk/testing/e2e",

src/material-experimental/mdc-card/BUILD.bazel

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package(default_visibility = ["//visibility:public"])
22

33
load("@io_bazel_rules_sass//:defs.bzl", "sass_binary", "sass_library")
4-
load("//tools:defaults.bzl", "ng_e2e_test_library", "ng_module", "protractor_web_test_suite")
4+
load("//tools:defaults.bzl", "ng_e2e_test_library", "ng_module")
5+
load("//src/e2e-app:test_suite.bzl", "e2e_test_suite")
56

67
ng_module(
78
name = "mdc-card",
@@ -39,16 +40,8 @@ ng_e2e_test_library(
3940
],
4041
)
4142

42-
protractor_web_test_suite(
43+
e2e_test_suite(
4344
name = "e2e_tests",
44-
configuration = "//src/e2e-app:protractor.conf.js",
45-
data = [
46-
"//tools/axe-protractor",
47-
"@npm//@angular/bazel",
48-
],
49-
on_prepare = "//src/e2e-app:start-devserver.js",
50-
server = "//src/e2e-app:devserver",
51-
tags = ["e2e"],
5245
deps = [
5346
":e2e_test_sources",
5447
"//src/cdk/testing/e2e",

src/material-experimental/mdc-checkbox/BUILD.bazel

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package(default_visibility = ["//visibility:public"])
22

33
load("@io_bazel_rules_sass//:defs.bzl", "sass_binary", "sass_library")
4-
load("//tools:defaults.bzl", "ng_e2e_test_library", "ng_module", "ng_test_library", "ng_web_test_suite", "protractor_web_test_suite", "ts_library")
4+
load("//tools:defaults.bzl", "ng_e2e_test_library", "ng_module", "ng_test_library", "ng_web_test_suite", "ts_library")
5+
load("//src/e2e-app:test_suite.bzl", "e2e_test_suite")
56

67
ng_module(
78
name = "mdc-checkbox",
@@ -97,16 +98,8 @@ ng_e2e_test_library(
9798
],
9899
)
99100

100-
protractor_web_test_suite(
101+
e2e_test_suite(
101102
name = "e2e_tests",
102-
configuration = "//src/e2e-app:protractor.conf.js",
103-
data = [
104-
"//tools/axe-protractor",
105-
"@npm//@angular/bazel",
106-
],
107-
on_prepare = "//src/e2e-app:start-devserver.js",
108-
server = "//src/e2e-app:devserver",
109-
tags = ["e2e"],
110103
deps = [
111104
":e2e_test_sources",
112105
"//src/cdk/testing/e2e",

src/material-experimental/mdc-chips/BUILD.bazel

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package(default_visibility = ["//visibility:public"])
22

33
load("@io_bazel_rules_sass//:defs.bzl", "sass_binary", "sass_library")
4-
load("//tools:defaults.bzl", "ng_e2e_test_library", "ng_module", "protractor_web_test_suite")
4+
load("//tools:defaults.bzl", "ng_e2e_test_library", "ng_module")
5+
load("//src/e2e-app:test_suite.bzl", "e2e_test_suite")
56

67
ng_module(
78
name = "mdc-chips",
@@ -52,16 +53,8 @@ ng_e2e_test_library(
5253
],
5354
)
5455

55-
protractor_web_test_suite(
56+
e2e_test_suite(
5657
name = "e2e_tests",
57-
configuration = "//src/e2e-app:protractor.conf.js",
58-
data = [
59-
"//tools/axe-protractor",
60-
"@npm//@angular/bazel",
61-
],
62-
on_prepare = "//src/e2e-app:start-devserver.js",
63-
server = "//src/e2e-app:devserver",
64-
tags = ["e2e"],
6558
deps = [
6659
":e2e_test_sources",
6760
"//src/cdk/testing/e2e",

src/material-experimental/mdc-menu/BUILD.bazel

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package(default_visibility = ["//visibility:public"])
22

33
load("@io_bazel_rules_sass//:defs.bzl", "sass_binary", "sass_library")
4-
load("//tools:defaults.bzl", "ng_e2e_test_library", "ng_module", "ng_test_library", "ng_web_test_suite", "protractor_web_test_suite")
4+
load("//tools:defaults.bzl", "ng_e2e_test_library", "ng_module", "ng_test_library", "ng_web_test_suite")
5+
load("//src/e2e-app:test_suite.bzl", "e2e_test_suite")
56

67
ng_module(
78
name = "mdc-menu",
@@ -79,16 +80,8 @@ ng_e2e_test_library(
7980
],
8081
)
8182

82-
protractor_web_test_suite(
83+
e2e_test_suite(
8384
name = "e2e_tests",
84-
configuration = "//src/e2e-app:protractor.conf.js",
85-
data = [
86-
"//tools/axe-protractor",
87-
"@npm//@angular/bazel",
88-
],
89-
on_prepare = "//src/e2e-app:start-devserver.js",
90-
server = "//src/e2e-app:devserver",
91-
tags = ["e2e"],
9285
deps = [
9386
":e2e_test_sources",
9487
"//src/cdk/testing/e2e",

0 commit comments

Comments
 (0)