Commit Graph

13 Commits

Author SHA1 Message Date
Ryan Brandenburg 3ab8ebff42
Extend timeout and enforce usings (#12952)
Extend timeout and enforce usings
2019-08-09 13:38:09 -07:00
Ryan Brandenburg 22df034ae6 Allow retries of SSL exceptions 2019-08-07 10:41:49 -07:00
Ryan Brandenburg e69d378442
RazorClassLibrary Components (#12134)
RazorLibrary components
2019-07-19 13:38:29 -07:00
Ryan Brandenburg 63640c2886
Improvements to building templates locally (#12022)
Small improvements to building templates locally
2019-07-11 15:02:51 -07:00
Javier Calvarro Nelson 635da5b73a
[Templating] Enforce selenium tests runs on the expected platforms (#11602)
* Will cause the CI environment to fail if the E2E tests stop running by accident.
2019-07-01 14:42:11 +02:00
Ryan Brandenburg 8fd86c38db
Make some tests Flaky (#9935)
Mark some tests flaky.
2019-05-06 15:33:02 -07:00
Neil Bostrom d9ad99933c Fixed issue with SPA templates generating invalid NPM package names (#9725)
Added unit test to check NPM package names matches regex
2019-04-29 14:42:25 -07:00
Ryan Brandenburg 1f7b5855f7
Check browser console errors (#9298)
Check browser console errors
2019-04-25 10:02:22 -07:00
Javier Calvarro Nelson 4abf766c3c
Update Identity server dependency for preview4 (#9104)
* Updates Identity server dependency for preview4
* Infrastructure improvements.
* Updates react versions.
* Updates migrations.
* Makes templates show up in Visual Studio
2019-04-08 17:06:58 +02:00
Javier Calvarro Nelson 437134f1da
[Infrastructure] Standarize E2E test asserts and increase wait time (#9080)
* Standarize E2E test asserts and increase wait time
2019-04-05 09:00:11 +02:00
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
Javier Calvarro Nelson d7a9606040
[Templating][Components] Unify and improve E2E testing infrastructure (#8188)
* Unify the Templating and Components testing infrastructure.
* Enable test project discovery in the components E2E tests.
* Enable selectively disabling Selenium tests through build properties.
2019-03-11 18:40:18 +01:00
Nate McMaster 33bc4576da
Convert ProjectTemplates to build using ProjectReferences (#6935) 2019-01-23 15:54:47 -08:00