feat: Introduce Playwright for UI testing
Instead of using Robot Framework which does not run during a `mvn install`. Playwright seems to be the better approach. We can now write them as normal JUnit test and they are executed during a build. Additionally this PR solves some interesting bugs found during writing Playwright tests: - A reset of a lesson removes all assignments as a result another user wouldn't see any assignments - If someone solves an assignment the assignment automatically got solved for a new user since the assignment included the `solved` flag which immediately got copied to new lesson progress. - Introduction of assignment progress linking a assignment not directly to all users.
This commit is contained in:
61
.github/workflows/test.yml
vendored
61
.github/workflows/test.yml
vendored
@ -1,61 +0,0 @@
|
||||
name: "UI-Test"
|
||||
on:
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- 'LICENSE'
|
||||
- 'docs/**'
|
||||
push:
|
||||
tags-ignore:
|
||||
- 'v*'
|
||||
paths-ignore:
|
||||
- '.txt'
|
||||
- '*.MD'
|
||||
- '*.md'
|
||||
- 'LICENSE'
|
||||
- 'docs/**'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
# display name of the job
|
||||
name: "Robot framework test"
|
||||
steps:
|
||||
# Uses an default action to checkout the code
|
||||
- uses: actions/checkout@v4.1.6
|
||||
# Uses an action to add Python to the VM
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.7'
|
||||
architecture: x64
|
||||
# Uses an action to add JDK 23 to the VM (and mvn?)
|
||||
- name: set up JDK 23
|
||||
uses: actions/setup-java@v4.2.1
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: 23
|
||||
architecture: x64
|
||||
cache: 'maven'
|
||||
- uses: BSFishy/pip-action@v1
|
||||
with:
|
||||
packages: |
|
||||
robotframework
|
||||
robotframework-SeleniumLibrary
|
||||
webdriver-manager
|
||||
selenium==4.9.1
|
||||
# TODO https://github.com/robotframework/SeleniumLibrary/issues/1835
|
||||
- name: Run with Maven
|
||||
run: mvn --no-transfer-progress spring-boot:run &
|
||||
- name: Wait to start
|
||||
uses: ifaxity/wait-on-action@v1
|
||||
with:
|
||||
resource: http://127.0.0.1:8080/WebGoat
|
||||
- name: Test with Robotframework
|
||||
run: python3 -m robot --variable HEADLESS:"1" --outputdir robotreport robot/goat.robot
|
||||
# send report to forks only due to limits on permission tokens
|
||||
- name: Send report to commit
|
||||
if: github.repository != 'WebGoat/WebGoat' && github.event_name == 'push'
|
||||
uses: joonvena/robotframework-reporter-action@v2.2
|
||||
with:
|
||||
gh_access_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
report_path: 'robotreport'
|
Reference in New Issue
Block a user