Update acceptance test readme & scripts (#13078)

* Update readme to reflect the change to playwright

* Update test scripts

* update README

* update pipelines to run new script

* update package.json scripts

* dont include demo test in package.json

* Add creation of blueprint test

* Implement create test script

Co-authored-by: Zeegaan <nge@umbraco.dk>
This commit is contained in:
Nikolaj Geisle
2022-09-30 10:45:26 +01:00
committed by GitHub
parent 89f5151ddf
commit 8c61e9e00b
4 changed files with 37 additions and 16 deletions

View File

@@ -467,7 +467,7 @@ stages:
inputs:
targetType: inline
workingDirectory: tests/Umbraco.Tests.AcceptanceTest
script: 'npm run ui --ignore-certificate-errors'
script: 'npm run test --ignore-certificate-errors'
- bash: |
if [ -f $(Build.SourcesDirectory)/tests/Umbraco.Tests.AcceptanceTest/results/ ]; then
echo "##vso[task.setVariable variable=myfileexists]true"

View File

@@ -1,12 +1,12 @@
# Umbraco Acceptance Tests
### Prerequisites
- NodeJS 12+
- NodeJS 16+
- A running installed Umbraco on url: [https://localhost:44331](https://localhost:44331) (Default development port)
- Install using a `SqlServer`/`LocalDb` as the tests execute too fast for `SqlCE` to handle.
- Install using a `SqlServer`/`LocalDb` as the tests execute too fast for `Sqlite` to handle.
### Getting started
The tests are located in the project/folder as `Umbraco.Tests.AcceptanceTests`. Make sure you run `npm install` in that folder, or let your IDE do that.
The tests are located in the project/folder as `Umbraco.Tests.AcceptanceTests`. Make sure you run `npm ci` & `npx playwright install` in that folder, or let your IDE do that.
The script will ask you to enter the username and password for a superadmin user of your Umbraco CMS.
@@ -16,21 +16,20 @@ There are two npm scripts that can be used to execute the test:
1. `npm run test`
- Executes the tests headless.
1. `npm run ui`
- Executes the tests in a browser handled by a cypress application.
- Executes the tests in a browser handled by a playwright application.
In case of errors it is recommended to use the UI to debug.
In case of errors it is recommended to use `await page.pause()` so you can step through your test.
### Enviroment Configuration
### Environment Configuration
The enviroment configuration is begin setup by the npm installation script.
This results in the creation of this file: `cypress.env.json`.
The environment configuration is begin setup by the npm installation script.
This results in the creation of this file: `.env`.
This file is already added to `.gitignore` and can contain values that are different for each developer machine.
The file has the following content:
```
{
"username": "<email for superadmin>",
"password": "<password for superadmin>"
}
UMBRACO_USER_LOGIN=email for superadmin
UMBRACO_USER_PASSWORD=password for superadmin
URL=https://localhost:44331
```
You can change this if you like or run the config script to reset the values, type "npm run config" in your terminal.

View File

@@ -0,0 +1,21 @@
const fs = require('fs');
const args = process.argv.slice(2);
function generate(fileName) {
fs.writeFileSync(
`./tests/${fileName}.spec.ts`,
`import {test} from '@umbraco/playwright-testhelpers';
test.describe('New test file description', () => {
test.beforeEach(async ({page, umbracoApi}) => {
await umbracoApi.login();
});
test('New test', async ({page, umbracoApi, umbracoUi}) => {
});
});`
);
}
generate(args[0] || "newTest");

View File

@@ -4,9 +4,10 @@
"scripts": {
"postinstall": "node postinstall.js",
"config": "node config.js",
"ui": "npx playwright test tests/DefaultConfig",
"headed": "npx playwright test --headed tests/DefaultConfig",
"all": "npx playwright test"
"ui": "npx playwright test --headed DefaultConfig",
"test": "npx playwright test DefaultConfig",
"all": "npx playwright test",
"createTest": "node createTest.js"
},
"devDependencies": {
"@playwright/test": "^1.19.2",