[Optimization] parallel testing (#4075)
* add: vitest projects (multiple) preparations for parallel testing * update: tests workflow better parallel testing
This commit is contained in:
parent
e6a574c48f
commit
ae50db7710
|
@ -15,8 +15,8 @@ on:
|
|||
types: [checks_requested]
|
||||
|
||||
jobs:
|
||||
run-tests: # Define a job named "run-tests"
|
||||
name: Run tests # Human-readable name for the job
|
||||
run-misc-tests: # Define a job named "run-tests"
|
||||
name: Run misc tests # Human-readable name for the job
|
||||
runs-on: ubuntu-latest # Specify the latest Ubuntu runner for the job
|
||||
|
||||
steps:
|
||||
|
@ -31,5 +31,75 @@ jobs:
|
|||
- name: Install Node.js dependencies # Step to install Node.js dependencies
|
||||
run: npm ci # Use 'npm ci' to install dependencies
|
||||
|
||||
- name: tests # Step to run tests
|
||||
run: npm run test:silent
|
||||
- name: pre-test # pre-test to check overrides
|
||||
run: npx vitest run --project pre
|
||||
- name: test misc
|
||||
run: npx vitest --project misc
|
||||
|
||||
run-abilities-tests:
|
||||
name: Run abilities tests
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out Git repository
|
||||
uses: actions/checkout@v4
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
- name: Install Node.js dependencies
|
||||
run: npm ci
|
||||
- name: pre-test
|
||||
run: npx vitest run --project pre
|
||||
- name: test abilities
|
||||
run: npx vitest --project abilities
|
||||
|
||||
run-items-tests:
|
||||
name: Run items tests
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out Git repository
|
||||
uses: actions/checkout@v4
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
- name: Install Node.js dependencies
|
||||
run: npm ci
|
||||
- name: pre-test
|
||||
run: npx vitest run --project pre
|
||||
- name: test items
|
||||
run: npx vitest --project items
|
||||
|
||||
run-moves-tests:
|
||||
name: Run moves tests
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out Git repository
|
||||
uses: actions/checkout@v4
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
- name: Install Node.js dependencies
|
||||
run: npm ci
|
||||
- name: pre-test
|
||||
run: npx vitest run --project pre
|
||||
- name: test moves
|
||||
run: npx vitest --project moves
|
||||
|
||||
run-battle-tests:
|
||||
name: Run battle tests
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out Git repository
|
||||
uses: actions/checkout@v4
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
- name: Install Node.js dependencies
|
||||
run: npm ci
|
||||
- name: pre-test
|
||||
run: npx vitest run --project pre
|
||||
- name: test battle
|
||||
run: npx vitest --project battle
|
|
@ -1,38 +1,43 @@
|
|||
import { defineProject } from 'vitest/config';
|
||||
import { defineProject, UserWorkspaceConfig } from 'vitest/config';
|
||||
import { defaultConfig } from './vite.config';
|
||||
|
||||
export const defaultProjectTestConfig: UserWorkspaceConfig["test"] = {
|
||||
setupFiles: ['./src/test/vitest.setup.ts'],
|
||||
server: {
|
||||
deps: {
|
||||
inline: ['vitest-canvas-mock'],
|
||||
//@ts-ignore
|
||||
optimizer: {
|
||||
web: {
|
||||
include: ['vitest-canvas-mock'],
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
environment: 'jsdom' as const,
|
||||
environmentOptions: {
|
||||
jsdom: {
|
||||
resources: 'usable',
|
||||
},
|
||||
},
|
||||
threads: false,
|
||||
trace: true,
|
||||
restoreMocks: true,
|
||||
watch: false,
|
||||
coverage: {
|
||||
provider: 'istanbul' as const,
|
||||
reportsDirectory: 'coverage' as const,
|
||||
reporters: ['text-summary', 'html'],
|
||||
},
|
||||
}
|
||||
|
||||
export default defineProject(({ mode }) => ({
|
||||
...defaultConfig,
|
||||
test: {
|
||||
...defaultProjectTestConfig,
|
||||
name: "main",
|
||||
include: ["./src/test/**/*.{test,spec}.ts"],
|
||||
exclude: ["./src/test/pre.test.ts"],
|
||||
setupFiles: ['./src/test/vitest.setup.ts'],
|
||||
server: {
|
||||
deps: {
|
||||
inline: ['vitest-canvas-mock'],
|
||||
optimizer: {
|
||||
web: {
|
||||
include: ['vitest-canvas-mock'],
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
environment: 'jsdom' as const,
|
||||
environmentOptions: {
|
||||
jsdom: {
|
||||
resources: 'usable',
|
||||
},
|
||||
},
|
||||
threads: false,
|
||||
trace: true,
|
||||
restoreMocks: true,
|
||||
watch: false,
|
||||
coverage: {
|
||||
provider: 'istanbul' as const,
|
||||
reportsDirectory: 'coverage' as const,
|
||||
reporters: ['text-summary', 'html'],
|
||||
},
|
||||
},
|
||||
esbuild: {
|
||||
pure: mode === 'production' ? [ 'console.log' ] : [],
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { defineWorkspace } from "vitest/config";
|
||||
import { defaultConfig } from "./vite.config";
|
||||
import { defaultProjectTestConfig } from "./vitest.config";
|
||||
|
||||
export default defineWorkspace([
|
||||
{
|
||||
|
@ -10,5 +11,58 @@ export default defineWorkspace([
|
|||
environment: "jsdom",
|
||||
},
|
||||
},
|
||||
{
|
||||
...defaultConfig,
|
||||
test: {
|
||||
...defaultProjectTestConfig,
|
||||
name: "misc",
|
||||
include: [
|
||||
"src/test/achievements/**/*.{test,spec}.ts",
|
||||
"src/test/arena/**/*.{test,spec}.ts",
|
||||
"src/test/battlerTags/**/*.{test,spec}.ts",
|
||||
"src/test/eggs/**/*.{test,spec}.ts",
|
||||
"src/test/field/**/*.{test,spec}.ts",
|
||||
"src/test/inputs/**/*.{test,spec}.ts",
|
||||
"src/test/localization/**/*.{test,spec}.ts",
|
||||
"src/test/phases/**/*.{test,spec}.ts",
|
||||
"src/test/settingMenu/**/*.{test,spec}.ts",
|
||||
"src/test/sprites/**/*.{test,spec}.ts",
|
||||
"src/test/ui/**/*.{test,spec}.ts",
|
||||
"src/test/*.{test,spec}.ts",
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
...defaultConfig,
|
||||
test: {
|
||||
...defaultProjectTestConfig,
|
||||
name: "abilities",
|
||||
include: ["src/test/abilities/**/*.{test,spec}.ts"],
|
||||
},
|
||||
},
|
||||
{
|
||||
...defaultConfig,
|
||||
test: {
|
||||
...defaultProjectTestConfig,
|
||||
name: "battle",
|
||||
include: ["src/test/battle/**/*.{test,spec}.ts"],
|
||||
},
|
||||
},
|
||||
{
|
||||
...defaultConfig,
|
||||
test: {
|
||||
...defaultProjectTestConfig,
|
||||
name: "items",
|
||||
include: ["src/test/items/**/*.{test,spec}.ts"],
|
||||
},
|
||||
},
|
||||
{
|
||||
...defaultConfig,
|
||||
test: {
|
||||
...defaultProjectTestConfig,
|
||||
name: "moves",
|
||||
include: ["src/test/moves/**/*.{test,spec}.ts"],
|
||||
},
|
||||
},
|
||||
"./vitest.config.ts",
|
||||
]);
|
||||
|
|
Loading…
Reference in New Issue