build: speedy tests on circle by splitting the test files into multiple jobs (#21015)
* build: let circleci divide our test suites in two * well our tests rely on side affects, thats cool I guess
This commit is contained in:
parent
bbfb32b136
commit
24939e8fa4
18 changed files with 51 additions and 80 deletions
|
@ -1,13 +1,9 @@
|
|||
'use strict'
|
||||
|
||||
const chai = require('chai')
|
||||
const dirtyChai = require('dirty-chai')
|
||||
const { expect } = require('chai')
|
||||
const { nativeImage } = require('electron')
|
||||
const path = require('path')
|
||||
|
||||
const { expect } = chai
|
||||
chai.use(dirtyChai)
|
||||
|
||||
describe('nativeImage module', () => {
|
||||
const ImageFormat = {
|
||||
PNG: 'png',
|
||||
|
|
|
@ -1,19 +1,15 @@
|
|||
'use strict'
|
||||
|
||||
const chai = require('chai')
|
||||
const dirtyChai = require('dirty-chai')
|
||||
const { expect } = require('chai')
|
||||
const path = require('path')
|
||||
const { resolveGetters } = require('./expect-helpers')
|
||||
const { ifdescribe } = require('./spec-helpers')
|
||||
|
||||
const { remote, ipcRenderer } = require('electron')
|
||||
const { ipcMain, BrowserWindow } = remote
|
||||
const { expect } = chai
|
||||
|
||||
const features = process.electronBinding('features')
|
||||
|
||||
chai.use(dirtyChai)
|
||||
|
||||
const comparePaths = (path1, path2) => {
|
||||
if (process.platform === 'win32') {
|
||||
path1 = path1.toLowerCase()
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
const chai = require('chai')
|
||||
const dirtyChai = require('dirty-chai')
|
||||
const { expect } = require('chai')
|
||||
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
|
@ -7,9 +6,6 @@ const os = require('os')
|
|||
const http = require('http')
|
||||
const { shell } = require('electron')
|
||||
|
||||
const { expect } = chai
|
||||
chai.use(dirtyChai)
|
||||
|
||||
describe('shell module', () => {
|
||||
const fixtures = path.resolve(__dirname, 'fixtures')
|
||||
const shortcutOptions = {
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
const chai = require('chai')
|
||||
const dirtyChai = require('dirty-chai')
|
||||
const { expect } = require('chai')
|
||||
const { webFrame } = require('electron')
|
||||
|
||||
const { expect } = chai
|
||||
chai.use(dirtyChai)
|
||||
|
||||
describe('webFrame module', function () {
|
||||
it('supports setting the visual and layout zoom level limits', function () {
|
||||
expect(() => {
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
const chai = require('chai')
|
||||
const dirtyChai = require('dirty-chai')
|
||||
const { expect } = require('chai')
|
||||
const ChildProcess = require('child_process')
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
|
@ -9,9 +8,6 @@ const nativeImage = require('electron').nativeImage
|
|||
|
||||
const features = process.electronBinding('features')
|
||||
|
||||
const { expect } = chai
|
||||
chai.use(dirtyChai)
|
||||
|
||||
async function expectToThrowErrorWithCode (func, code) {
|
||||
let error
|
||||
try {
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
const chai = require('chai')
|
||||
const dirtyChai = require('dirty-chai')
|
||||
const { expect } = require('chai')
|
||||
const fs = require('fs')
|
||||
const http = require('http')
|
||||
const path = require('path')
|
||||
|
@ -11,9 +10,6 @@ const { emittedOnce } = require('./events-helpers')
|
|||
const { resolveGetters } = require('./expect-helpers')
|
||||
const features = process.electronBinding('features')
|
||||
|
||||
const { expect } = chai
|
||||
chai.use(dirtyChai)
|
||||
|
||||
/* Most of the APIs here don't use standard callbacks */
|
||||
/* eslint-disable standard/no-callback-literal */
|
||||
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
const ChildProcess = require('child_process')
|
||||
const chai = require('chai')
|
||||
const { expect } = chai
|
||||
const dirtyChai = require('dirty-chai')
|
||||
const { expect } = require('chai')
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const os = require('os')
|
||||
|
@ -11,8 +9,6 @@ const features = process.electronBinding('features')
|
|||
const { emittedOnce } = require('./events-helpers')
|
||||
const { ifit } = require('./spec-helpers')
|
||||
|
||||
chai.use(dirtyChai)
|
||||
|
||||
describe('node feature', () => {
|
||||
const fixtures = path.join(__dirname, 'fixtures')
|
||||
|
||||
|
|
|
@ -55,6 +55,8 @@
|
|||
if (query.grep) mocha.grep(query.grep)
|
||||
if (query.invert) mocha.invert()
|
||||
|
||||
const files = query.files ? query.files.split(',') : undefined
|
||||
|
||||
// Read all test files.
|
||||
const walker = require('walkdir').walk(path.dirname(__dirname), {
|
||||
no_recurse: true
|
||||
|
@ -73,9 +75,20 @@
|
|||
}
|
||||
})
|
||||
|
||||
const baseElectronDir = path.resolve(__dirname, '..', '..')
|
||||
|
||||
walker.on('end', () => {
|
||||
testFiles.sort()
|
||||
testFiles.forEach((file) => mocha.addFile(file))
|
||||
testFiles.forEach((file) => {
|
||||
if (!files || files.includes(path.relative(baseElectronDir, file))) {
|
||||
mocha.addFile(file)
|
||||
}
|
||||
})
|
||||
|
||||
// Set up chai in the correct order
|
||||
const chai = require('chai')
|
||||
chai.use(require('chai-as-promised'))
|
||||
chai.use(require('dirty-chai'))
|
||||
|
||||
const runner = mocha.run(() => {
|
||||
// Ensure the callback is called after runner is defined
|
||||
|
|
|
@ -11,6 +11,7 @@ const v8 = require('v8')
|
|||
|
||||
const argv = require('yargs')
|
||||
.boolean('ci')
|
||||
.array('files')
|
||||
.string('g').alias('g', 'grep')
|
||||
.boolean('i').alias('i', 'invert')
|
||||
.argv
|
||||
|
@ -133,7 +134,8 @@ app.on('ready', function () {
|
|||
window.loadFile('static/index.html', {
|
||||
query: {
|
||||
grep: argv.grep,
|
||||
invert: argv.invert ? 'true' : ''
|
||||
invert: argv.invert ? 'true' : '',
|
||||
files: argv.files ? argv.files.join(',') : undefined
|
||||
}
|
||||
})
|
||||
window.on('unresponsive', function () {
|
||||
|
|
|
@ -1,14 +1,10 @@
|
|||
const chai = require('chai')
|
||||
const dirtyChai = require('dirty-chai')
|
||||
const { expect } = require('chai')
|
||||
const path = require('path')
|
||||
const http = require('http')
|
||||
const url = require('url')
|
||||
const { ipcRenderer } = require('electron')
|
||||
const { emittedOnce, waitForEvent } = require('./events-helpers')
|
||||
|
||||
const { expect } = chai
|
||||
chai.use(dirtyChai)
|
||||
|
||||
const features = process.electronBinding('features')
|
||||
const nativeModulesEnabled = process.env.ELECTRON_SKIP_NATIVE_MODULE_TESTS
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue