We were unintentionally hitting `gravatar.com` whenever a test that used
Poltergeist was run. This was certainly wasting their resources and
slowing down our tests even further, for no reason.
I suspect some combination of Knapsack tests cause no regular Rack tests
to be loaded (i.e. all JavaScript tests), which leads to the error:
ArgumentError: rack-test requires a rack application, but none was given
In CI, we precompile all the assets so there is no need to warm the
asset cache in any case.
Closes#23613
The problem occurred because asset compilation takes a long time, so
when the asset cache didn't exist and the first test ran, it would often
(randomly) time out during the generation before the actual test even
had a chance to run.
Now we check if the cache exists before the suite runs, and if not, we
manually fire a request to the root URL in order to generate it. This
should allow subsequent tests to use the cached assets.