mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
devops: make headful a matrix, collect test results (#3027)
This commit is contained in:
parent
13c3f7243c
commit
b5f9985d3a
71
.github/workflows/tests.yml
vendored
71
.github/workflows/tests.yml
vendored
@ -38,26 +38,25 @@ jobs:
|
|||||||
# Wrap `npm run` in a subshell to redirect STDERR to file.
|
# Wrap `npm run` in a subshell to redirect STDERR to file.
|
||||||
# Enable core dumps in the subshell.
|
# Enable core dumps in the subshell.
|
||||||
- run: xvfb-run --auto-servernum -- bash -c "ulimit -c unlimited && npm run jest -- --testTimeout=30000"
|
- run: xvfb-run --auto-servernum -- bash -c "ulimit -c unlimited && npm run jest -- --testTimeout=30000"
|
||||||
if: ${{ always() }}
|
|
||||||
env:
|
env:
|
||||||
BROWSER: ${{ matrix.browser }}
|
BROWSER: ${{ matrix.browser }}
|
||||||
DEBUG: "*,-pw:wrapped*"
|
DEBUG: "*,-pw:wrapped*"
|
||||||
DEBUG_FILE: "testrun.log"
|
DEBUG_FILE: "testrun.log"
|
||||||
|
- uses: actions/upload-artifact@v1
|
||||||
|
if: ${{ always() }}
|
||||||
|
with:
|
||||||
|
name: ${{ matrix.browser }}-linux-jest-report
|
||||||
|
path: jest-report.json
|
||||||
- uses: actions/upload-artifact@v1
|
- uses: actions/upload-artifact@v1
|
||||||
if: failure()
|
if: failure()
|
||||||
with:
|
with:
|
||||||
name: ${{ matrix.browser }}-linux-output
|
name: ${{ matrix.browser }}-linux-output
|
||||||
path: test/output-${{ matrix.browser }}
|
path: test/output-${{ matrix.browser }}
|
||||||
- uses: actions/upload-artifact@v1
|
- uses: actions/upload-artifact@v1
|
||||||
if: failure()
|
if: ${{ always() }}
|
||||||
with:
|
with:
|
||||||
name: ${{ matrix.browser }}-linux-testrun.log
|
name: ${{ matrix.browser }}-linux-testrun.log
|
||||||
path: testrun.log
|
path: testrun.log
|
||||||
- uses: actions/upload-artifact@v1
|
|
||||||
if: failure()
|
|
||||||
with:
|
|
||||||
name: ${{ matrix.browser }}-linux-coredumps
|
|
||||||
path: coredumps
|
|
||||||
|
|
||||||
test_mac:
|
test_mac:
|
||||||
name: "macOS"
|
name: "macOS"
|
||||||
@ -79,13 +78,18 @@ jobs:
|
|||||||
BROWSER: ${{ matrix.browser }}
|
BROWSER: ${{ matrix.browser }}
|
||||||
DEBUG: "*,-pw:wrapped*"
|
DEBUG: "*,-pw:wrapped*"
|
||||||
DEBUG_FILE: "testrun.log"
|
DEBUG_FILE: "testrun.log"
|
||||||
|
- uses: actions/upload-artifact@v1
|
||||||
|
if: ${{ always() }}
|
||||||
|
with:
|
||||||
|
name: ${{ matrix.browser }}-mac-jest-report
|
||||||
|
path: jest-report.json
|
||||||
- uses: actions/upload-artifact@v1
|
- uses: actions/upload-artifact@v1
|
||||||
if: failure()
|
if: failure()
|
||||||
with:
|
with:
|
||||||
name: ${{ matrix.browser }}-mac-output
|
name: ${{ matrix.browser }}-mac-output
|
||||||
path: test/output-${{ matrix.browser }}
|
path: test/output-${{ matrix.browser }}
|
||||||
- uses: actions/upload-artifact@v1
|
- uses: actions/upload-artifact@v1
|
||||||
if: failure()
|
if: ${{ always() }}
|
||||||
with:
|
with:
|
||||||
name: ${{ matrix.browser }}-mac-testrun.log
|
name: ${{ matrix.browser }}-mac-testrun.log
|
||||||
path: testrun.log
|
path: testrun.log
|
||||||
@ -111,13 +115,18 @@ jobs:
|
|||||||
BROWSER: ${{ matrix.browser }}
|
BROWSER: ${{ matrix.browser }}
|
||||||
DEBUG: "*,-pw:wrapped*"
|
DEBUG: "*,-pw:wrapped*"
|
||||||
DEBUG_FILE: "testrun.log"
|
DEBUG_FILE: "testrun.log"
|
||||||
|
- uses: actions/upload-artifact@v1
|
||||||
|
if: ${{ always() }}
|
||||||
|
with:
|
||||||
|
name: ${{ matrix.browser }}-win-jest-report
|
||||||
|
path: jest-report.json
|
||||||
- uses: actions/upload-artifact@v1
|
- uses: actions/upload-artifact@v1
|
||||||
if: failure()
|
if: failure()
|
||||||
with:
|
with:
|
||||||
name: ${{ matrix.browser }}-win-output
|
name: ${{ matrix.browser }}-win-output
|
||||||
path: test/output-${{ matrix.browser }}
|
path: test/output-${{ matrix.browser }}
|
||||||
- uses: actions/upload-artifact@v1
|
- uses: actions/upload-artifact@v1
|
||||||
if: failure()
|
if: ${{ always() }}
|
||||||
with:
|
with:
|
||||||
name: ${{ matrix.browser }}-win-testrun.log
|
name: ${{ matrix.browser }}-win-testrun.log
|
||||||
path: testrun.log
|
path: testrun.log
|
||||||
@ -142,6 +151,10 @@ jobs:
|
|||||||
|
|
||||||
headful_linux:
|
headful_linux:
|
||||||
name: "Headful Linux"
|
name: "Headful Linux"
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
browser: [chromium, firefox, webkit]
|
||||||
runs-on: ubuntu-18.04
|
runs-on: ubuntu-18.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
@ -160,31 +173,19 @@ jobs:
|
|||||||
- run: xvfb-run --auto-servernum -- bash -c "ulimit -c unlimited && npm run jest -- --testTimeout=30000"
|
- run: xvfb-run --auto-servernum -- bash -c "ulimit -c unlimited && npm run jest -- --testTimeout=30000"
|
||||||
if: ${{ always() }}
|
if: ${{ always() }}
|
||||||
env:
|
env:
|
||||||
BROWSER: "chromium"
|
BROWSER: ${{ matrix.browser }}
|
||||||
HEADLESS: "false"
|
|
||||||
DEBUG_FILE: "testrun.log"
|
|
||||||
- run: xvfb-run --auto-servernum -- bash -c "ulimit -c unlimited && npm run jest -- --testTimeout=30000"
|
|
||||||
if: ${{ always() }}
|
|
||||||
env:
|
|
||||||
BROWSER: "firefox"
|
|
||||||
HEADLESS: "false"
|
|
||||||
DEBUG_FILE: "testrun.log"
|
|
||||||
- run: xvfb-run --auto-servernum -- bash -c "ulimit -c unlimited && npm run jest -- --testTimeout=30000"
|
|
||||||
if: ${{ always() }}
|
|
||||||
env:
|
|
||||||
BROWSER: "webkit"
|
|
||||||
HEADLESS: "false"
|
HEADLESS: "false"
|
||||||
DEBUG_FILE: "testrun.log"
|
DEBUG_FILE: "testrun.log"
|
||||||
- uses: actions/upload-artifact@v1
|
- uses: actions/upload-artifact@v1
|
||||||
if: failure()
|
if: ${{ always() }}
|
||||||
with:
|
with:
|
||||||
name: headful-linux-testrun.log
|
name: headful-${{ matrix.browser }}-linux-jest-report
|
||||||
|
path: jest-report.json
|
||||||
|
- uses: actions/upload-artifact@v1
|
||||||
|
if: ${{ always() }}
|
||||||
|
with:
|
||||||
|
name: headful-${{ matrix.browser }}-linux-testrun.log
|
||||||
path: testrun.log
|
path: testrun.log
|
||||||
- uses: actions/upload-artifact@v1
|
|
||||||
if: failure()
|
|
||||||
with:
|
|
||||||
name: headful-linux-coredumps
|
|
||||||
path: coredumps
|
|
||||||
|
|
||||||
rpc_linux:
|
rpc_linux:
|
||||||
name: "RPC Linux"
|
name: "RPC Linux"
|
||||||
@ -214,18 +215,18 @@ jobs:
|
|||||||
DEBUG: "*,-pw:wrapped*"
|
DEBUG: "*,-pw:wrapped*"
|
||||||
DEBUG_FILE: "testrun.log"
|
DEBUG_FILE: "testrun.log"
|
||||||
PWCHANNEL: ${{ matrix.transport }}
|
PWCHANNEL: ${{ matrix.transport }}
|
||||||
|
- uses: actions/upload-artifact@v1
|
||||||
|
if: ${{ always() }}
|
||||||
|
with:
|
||||||
|
name: rpc-${{ matrix.transport }}-${{ matrix.browser }}-linux-jest-report
|
||||||
|
path: jest-report.json
|
||||||
- uses: actions/upload-artifact@v1
|
- uses: actions/upload-artifact@v1
|
||||||
if: failure()
|
if: failure()
|
||||||
with:
|
with:
|
||||||
name: rpc-${{ matrix.transport }}-${{ matrix.browser }}-linux-output
|
name: rpc-${{ matrix.transport }}-${{ matrix.browser }}-linux-output
|
||||||
path: test/output-${{ matrix.browser }}
|
path: test/output-${{ matrix.browser }}
|
||||||
- uses: actions/upload-artifact@v1
|
- uses: actions/upload-artifact@v1
|
||||||
if: failure()
|
if: ${{ always() }}
|
||||||
with:
|
with:
|
||||||
name: rpc-${{ matrix.transport }}-${{ matrix.browser }}-linux-testrun.log
|
name: rpc-${{ matrix.transport }}-${{ matrix.browser }}-linux-testrun.log
|
||||||
path: testrun.log
|
path: testrun.log
|
||||||
- uses: actions/upload-artifact@v1
|
|
||||||
if: failure()
|
|
||||||
with:
|
|
||||||
name: rpc-${{ matrix.transport }}-${{ matrix.browser }}-linux-coredumps
|
|
||||||
path: coredumps
|
|
||||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -14,3 +14,4 @@ yarn.lock
|
|||||||
/src/generated/*
|
/src/generated/*
|
||||||
lib/
|
lib/
|
||||||
/types/*
|
/types/*
|
||||||
|
jest-report.json
|
||||||
|
@ -7,5 +7,9 @@ module.exports = /** @type {import('@jest/types').Config.InitialOptions} */ ({
|
|||||||
testRunner: 'jest-circus/runner',
|
testRunner: 'jest-circus/runner',
|
||||||
testTimeout: 10000,
|
testTimeout: 10000,
|
||||||
globalSetup: './jest/setup.js',
|
globalSetup: './jest/setup.js',
|
||||||
globalTeardown: './jest/teardown.js'
|
globalTeardown: './jest/teardown.js',
|
||||||
|
reporters: [
|
||||||
|
'default',
|
||||||
|
'./jest/reporter'
|
||||||
|
]
|
||||||
});
|
});
|
||||||
|
23
test/jest/reporter.js
Normal file
23
test/jest/reporter.js
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/**
|
||||||
|
* Copyright Microsoft Corporation. All rights reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
const fs = require("fs")
|
||||||
|
|
||||||
|
module.exports = function Reporter() {
|
||||||
|
this.onRunComplete = (test, runResults) => {
|
||||||
|
fs.writeFileSync('jest-report.json', JSON.stringify(runResults, undefined, 2));
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user