f981dd9175
Currently Bazel always terminates the Saucelabs Bazel tests after 5mins. This is causing failing tests as Saucelabs tests usually run longer than 5mins. Our current Saucelabs idle timeout is 10min, so we should ensure that we don't exit early without properly shutting down Karma / disconnecting the browsers. PR Close #34707
115 lines
4.7 KiB
Python
115 lines
4.7 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",
|
|
# Default timeout is moderate (5min). This causes the test to be terminated while
|
|
# Saucelabs browsers keep running. Ultimately resulting in failing tests and browsers
|
|
# unnecessarily being acquired. Our specified Saucelabs idle timeout is 10min, so we use
|
|
# Bazel's long timeout (15min). This ensures that Karma can shut down properly.
|
|
timeout = "long",
|
|
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",
|
|
# Default timeout is moderate (5min). This causes the test to be terminated while
|
|
# Saucelabs browsers keep running. Ultimately resulting in failing tests and browsers
|
|
# unnecessarily being acquired. Our specified Saucelabs idle timeout is 10min, so we use
|
|
# Bazel's long timeout (15min). This ensures that Karma can shut down properly.
|
|
timeout = "long",
|
|
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)
|
|
],
|
|
)
|