aspnetcore/eng
Javier Calvarro Nelson 9f1a978230
[Infrastructure improvements] (#8275)
* Improved selenium start and tear down
  * Selenium is set up and torn down in an assembly fixture.
  * Selenium is initialized lazily and in a non-blocking way.
  * Selenium processes are tracked as part of the build and their pids
    written to a file on disk for cleanup in the event of unexpected
    termination of the test process.
  * Browser fixture retries with linear backoff to create a remote
    driver. Under heavy load (like when we are doing a simultaneous NPM
    restore) the selenium server can become unresponsive so we retry
    three times, with a longer comand timeout allowance each time up to
    a max of 3 minutes.
* Moved test project setup to build time instead of runtime.
  * Added target PrepareForTest to create the required files for testing
    * The template creation folder.
    * The template props file to use our built packages.
    * The folder for the custom hive.
  * Added assembly metadata attributes to find all the data we need to
    run the tests.
    * Path to the artifacts shipping packages folder.
    * Path to the artifacts non-shipping packages folder.
    * Path to the test templates creation folder.
    * Path to use for the custom templating hive used in tests.
  * Proper cleanup as part of the build
    * Remove the test templates creation folder.
    * Remove the test packages restore path.
    * Recreate the test templates creation folder.
    * Recreate the test packages restore path.
  * Generated Directory.Build.Props and Directory.Build.Targets in the
    test templates creation folder.
  * Cleaned up potentially stale templatetestsprops.
* Improved test flows
  * Initialization is done lazily and asynchronously.
    * Selenium
    * Browser fixture
    * Template initialization.
  * Flattened test flows to avoid assertions inside deep callstacks.
    * All assertions happen at the test level with improved error messages.
      * With the exception of the migrations assertions.
    * Assertions contain information about which step failed, for what
      project and what failure details.
  * Broke down tests to perform individual steps instead of mixing build
    and publish.
    * Publish project.
    * Build project. (Debug)
    * Run built project.
    * Run published project.
  * Concentrated build logic into the Project class.
    * Context between the different steps of a test is maintained in
      this class.
    * All operations that require coordination are performed within this
      class.
      * There is a lock for dotnet and a lock for nodejs. When building
        SPAs we acquire the nodejs lock to correctly prevent multiple
        runs of nodejs in parallel.

[ApiAuthorization template cleanups]
  * Fix preview3 issues with breaking changes on Entity framework by
    manually configuring the model in ApiAuthorizationDbContext.
  * Add app.db to the project file when using local db.
  * Fix linting errors on angular template.
  * Fix react tests
  * Add tests to cover new auth options in the SPA templates.
2019-03-20 08:44:20 +01:00
..
helix Add a separate test pass to run flaky tests that doesn't fail the build (#8486) 2019-03-18 18:21:14 -07:00
scripts [Infrastructure improvements] (#8275) 2019-03-20 08:44:20 +01:00
targets [BRT] Mitigating flaky SignalR tests (#8423) 2019-03-12 12:33:54 -07:00
tools Follow-up to VS2019 conversion (#7753) 2019-02-20 11:02:38 -08:00
AspNetCore.snk
Baseline.Designer.props Updated PR with my changes 2019-03-08 09:48:08 -08:00
Baseline.xml Updated PR with my changes 2019-03-08 09:48:08 -08:00
Dependencies.props Consume Microsoft.Internal.Extensions.Refs (#8261) 2019-03-12 12:47:06 -07:00
FlakyTests.AfterArcade.props Add a separate test pass to run flaky tests that doesn't fail the build (#8486) 2019-03-18 18:21:14 -07:00
FlakyTests.BeforeArcade.props Add a separate test pass to run flaky tests that doesn't fail the build (#8486) 2019-03-18 18:21:14 -07:00
GenAPI.exclusions.txt Add reference assemblies support (#7764) 2019-02-21 14:33:35 -08:00
LicenseHeader.txt Add reference assemblies support (#7764) 2019-02-21 14:33:35 -08:00
NuGetPackageVerifier.json
PatchConfig.props Merge branch 'release/2.2' into master 2019-03-18 12:36:01 -07:00
ProjectReferences.props Add reference assemblies support (#7764) 2019-02-21 14:33:35 -08:00
SharedFramework.External.props Update versions (#8198) 2019-03-06 17:56:51 -08:00
SharedFramework.Local.props Add targets to generate the list of shared framework assemblies from project property (#7510) 2019-02-12 23:00:19 -08:00
Version.Details.xml Manually (and coherently) update dependencies from 5 repositories 2019-03-18 19:36:09 -07:00
Versions.props Manually (and coherently) update dependencies from 5 repositories 2019-03-18 19:36:09 -07:00
Workarounds.props Make Visual Studio 2019 a prerequisite to building this repo (#7005) 2019-02-20 09:53:53 -08:00
Workarounds.targets Allow disabling automatic MVC reference (#8167) 2019-03-05 09:19:28 -08:00
signcheck.exclusions.txt Add new build.cmd/sh options for suppressing restore, NodeJS, setting target arch and OS name, and more (#7137) 2019-01-31 15:47:47 -08:00