Skip to main content

Playwright

The JUnit check type runs a new kubernetes pod with the specified image, in this example we are running a playwright test suite

apiVersion: canaries.flanksource.com/v1
kind: Canary
metadata:
name: playwright-junit
spec:
interval: 120
severity: high
junit:
- testResults: "/tmp/"
name: playwright-junit
display:
template: |
✅ {{.results.passed}} ❌ {{.results.failed}} in 🕑 {{.results.duration}}
{{ range $r := .results.suites}}
{{- if gt (conv.ToInt $r.failed) 0 }}
{{$r.name}} ✅ {{$r.passed}} ❌ {{$r.failed}} in 🕑 {{$r.duration}}
{{- end }}
{{- end }}
spec:
containers:
- name: playwright
image: ghcr.io/flanksource/canary-playwright:latest
command: ["/start.sh"]

By configuring playwright to export JUnit to the testResults folder, canary-checker will pick up the results and make then available display formating and health evaluation.

start.sh
mkdir -p /tmp/junit-results
PLAYWRIGHT_JUNIT_OUTPUT_NAME=/tmp/junit-results/results.xml npx playwright test --project=chromium --reporter=junit
touch /tmp/junit-results/done

For a complete working example, see canary-checker-examples/playwright

FieldDescriptionSchemeRequired
specPod specificationv1.PodSpecYes
testResultsDirectory where the results will be publishedstringYes
timeoutTimeout in minutes to wait for specified container to finish its job. Defaults to 5 minutesint
nameName of the check, must be unique within the canarystringYes
descriptionDescription for the checkstring
iconIcon for overwriting default icon on the dashboardstring
labelsLabels for checkmap[string]string
testEvaluate whether a check is healthyExpression
displayExpression to change the formatting of the displayExpression
transformTransform data from a check into multiple individual checksExpression
metricsMetrics to export from[]Metrics

Test Result Variables

See JUnit Test Results for the schema that is ingested and can be used for evaluating health or formatting the display.