6d3a25d897
Currently we only run Saucelabs on PRs using the legacy View Engine build. Switching that build to Ivy is not trivial and there are various options: 1. Updating the R3 switches to use POST_R3 by default. At first glance, this doesn't look easy because the current ngtsc switch logic seems to be unidirectional (only PRE_R3 to POST_R3). 2. Updating the legacy setup to run with Ivy. This sounds like the easiest solution at first.. but it turns out to be way more complicated. Packages would need to be built with ngtsc using legacy tools (i.e. first building the compiler-cli; and then building packages) and View Engine only tests would need to be determined and filtered out. Basically it will result in re-auditing all test targets. This is contradictory to the fact that we have this information in Bazel already. 3. Creating a new job that runs tests on Saucelabs with Bazel. We specify fine-grained test targets that should run. This would be a good start (e.g. acceptance tests) and also would mean that we do not continue maintaining the legacy setup.. This commit implements the third option as it allows us to move forward with the general Bazel migration. We don't want to spend too much time on our legacy setup since it will be removed anyway in the future. PR Close #34277
105 lines
4.0 KiB
Python
105 lines
4.0 KiB
Python
package(default_visibility = ["//visibility:public"])
|
|
|
|
load("//tools:defaults.bzl", "karma_web_test")
|
|
|
|
exports_files([
|
|
"LICENSE",
|
|
"protractor-perf.conf.js",
|
|
"karma-js.conf.js",
|
|
"browser-providers.conf.js",
|
|
])
|
|
|
|
alias(
|
|
name = "tsconfig.json",
|
|
actual = "//packages:tsconfig-build.json",
|
|
)
|
|
|
|
filegroup(
|
|
name = "web_test_bootstrap_scripts",
|
|
# do not sort
|
|
srcs = [
|
|
"@npm//:node_modules/core-js/client/core.js",
|
|
"//packages/zone.js/dist:zone.js",
|
|
"//packages/zone.js/dist:zone-testing.js",
|
|
"//packages/zone.js/dist:task-tracking.js",
|
|
"//:test-events.js",
|
|
"//:shims_for_IE.js",
|
|
# Including systemjs because it defines `__eval`, which produces correct stack traces.
|
|
"@npm//:node_modules/systemjs/dist/system.src.js",
|
|
"@npm//:node_modules/reflect-metadata/Reflect.js",
|
|
],
|
|
)
|
|
|
|
filegroup(
|
|
name = "angularjs_scripts",
|
|
srcs = [
|
|
# We also declare the unminfied AngularJS files since these can be used for
|
|
# local debugging (e.g. see: packages/upgrade/test/common/test_helpers.ts)
|
|
"@npm//:node_modules/angular/angular.js",
|
|
"@npm//:node_modules/angular/angular.min.js",
|
|
"@npm//:node_modules/angular-1.5/angular.js",
|
|
"@npm//:node_modules/angular-1.5/angular.min.js",
|
|
"@npm//:node_modules/angular-1.6/angular.js",
|
|
"@npm//:node_modules/angular-1.6/angular.min.js",
|
|
"@npm//:node_modules/angular-mocks/angular-mocks.js",
|
|
"@npm//:node_modules/angular-mocks-1.5/angular-mocks.js",
|
|
"@npm//:node_modules/angular-mocks-1.6/angular-mocks.js",
|
|
],
|
|
)
|
|
|
|
# To run a karma_web_test target manually, run the "./scripts/saucelabs/run-bazel-via-tunnel.sh"
|
|
# script. Note: If you are on MacOS or Windows, you need to manually start the Saucelabs tunnel
|
|
# because the script only supports the linux Saucelabs tunnel binary. We combine all tests into
|
|
# a single "karma_web_test" target because running them as separate targets in parallel can result
|
|
# in to too many browsers being acquired at the same time. This will then result in tests being
|
|
# flaky. This target runs in CI with Saucelabs and Ivy.
|
|
karma_web_test(
|
|
name = "saucelabs_unit_tests",
|
|
tags = [
|
|
"local",
|
|
"manual",
|
|
"saucelabs",
|
|
],
|
|
deps = [
|
|
"//packages/core/test/acceptance:acceptance_lib",
|
|
],
|
|
)
|
|
|
|
karma_web_test(
|
|
# This target runs in CI with View Engine as a Saucelabs and Bazel proof-of-concept. It's a
|
|
# subset of the legacy saucelabs tests.
|
|
name = "saucelabs_unit_tests_poc",
|
|
tags = [
|
|
"local",
|
|
"manual",
|
|
"saucelabs",
|
|
],
|
|
deps = [
|
|
# We combine all tests into a single karma_web_test target
|
|
# as running them as separate targets in parallel leads to too many
|
|
# browsers being acquired at once in SauceLabs and the tests flake out
|
|
# TODO: this is an example subset of tests below, add all remaining angular tests
|
|
"//packages/common/http/test:test_lib",
|
|
"//packages/common/http/testing/test:test_lib",
|
|
"//packages/common/test:test_lib",
|
|
"//packages/core/test:test_lib",
|
|
"//packages/forms/test:test_lib",
|
|
"//packages/http/test:test_lib",
|
|
"//packages/zone.js/test:karma_jasmine_test_ci",
|
|
# "//packages/router/test:test_lib",
|
|
# //packages/router/test:test_lib fails with:
|
|
# IE 11.0.0 (Windows 8.1.0.0) bootstrap should restore the scrolling position FAILED
|
|
# Expected undefined to equal 5000.
|
|
# at stack (eval code:2338:11)
|
|
# at buildExpectationResult (eval code:2305:5)
|
|
# at expectationResultFactory (eval code:858:11)
|
|
# at Spec.prototype.addExpectationResult (eval code:487:5)
|
|
# at addExpectationResult (eval code:802:9)
|
|
# at Anonymous function (eval code:2252:7)
|
|
# at Anonymous function (eval code:339:25)
|
|
# at step (eval code:133:17)
|
|
# at Anonymous function (eval code:114:50)
|
|
# at fulfilled (eval code:104:47)
|
|
],
|
|
)
|