@vitest/runner 5.0.0-beta.3 → 5.0.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-artifact.js +19 -15
- package/dist/index.d.ts +3 -3
- package/dist/{tasks.d-B4a0-8OW.d.ts → tasks.d-BR8WBtGa.d.ts} +45 -18
- package/dist/types.d.ts +2 -2
- package/dist/utils.d.ts +3 -3
- package/package.json +3 -2
package/dist/chunk-artifact.js
CHANGED
|
@@ -91,7 +91,8 @@ class TestFixtures {
|
|
|
91
91
|
"onTestFailed",
|
|
92
92
|
"onTestFinished",
|
|
93
93
|
"skip",
|
|
94
|
-
"annotate"
|
|
94
|
+
"annotate",
|
|
95
|
+
"bench"
|
|
95
96
|
];
|
|
96
97
|
static _fixtureOptionKeys = [
|
|
97
98
|
"auto",
|
|
@@ -937,6 +938,8 @@ function createTestHook(name, handler) {
|
|
|
937
938
|
*/
|
|
938
939
|
function interpretTaskModes(file, namePattern, testLocations, testIds, testTagsFilter, onlyMode, parentIsOnly, allowOnly) {
|
|
939
940
|
const matchedLocations = [];
|
|
941
|
+
const testLocationsSet = testLocations !== undefined && testLocations.length !== 0 ? new Set(testLocations) : undefined;
|
|
942
|
+
const testIdsSet = testIds ? new Set(testIds) : undefined;
|
|
940
943
|
const traverseSuite = (suite, parentIsOnly, parentMatchedWithLocation) => {
|
|
941
944
|
const suiteIsOnly = parentIsOnly || suite.mode === "only";
|
|
942
945
|
// Check if any tasks in this suite have `.only` - if so, only those should run
|
|
@@ -963,8 +966,8 @@ function interpretTaskModes(file, namePattern, testLocations, testIds, testTagsF
|
|
|
963
966
|
// Match test location against provided locations, only run if present
|
|
964
967
|
// in `testLocations`. Note: if `includeTaskLocation` is not enabled,
|
|
965
968
|
// all test will be skipped.
|
|
966
|
-
if (
|
|
967
|
-
if (t.location &&
|
|
969
|
+
if (testLocationsSet !== undefined) {
|
|
970
|
+
if (t.location && testLocationsSet.has(t.location.line)) {
|
|
968
971
|
t.mode = "run";
|
|
969
972
|
matchedLocations.push(t.location.line);
|
|
970
973
|
hasLocationMatch = true;
|
|
@@ -978,7 +981,7 @@ function interpretTaskModes(file, namePattern, testLocations, testIds, testTagsF
|
|
|
978
981
|
if (namePattern && !getTaskFullName(t).match(namePattern)) {
|
|
979
982
|
t.mode = "skip";
|
|
980
983
|
}
|
|
981
|
-
if (
|
|
984
|
+
if (testIdsSet && !testIdsSet.has(t.id)) {
|
|
982
985
|
t.mode = "skip";
|
|
983
986
|
}
|
|
984
987
|
if (testTagsFilter && !testTagsFilter(t.tags || [])) {
|
|
@@ -1796,6 +1799,7 @@ function createSuiteCollector(name, factory = () => {}, mode, each, suiteOptions
|
|
|
1796
1799
|
meta: testMeta,
|
|
1797
1800
|
annotations: [],
|
|
1798
1801
|
artifacts: [],
|
|
1802
|
+
benchmarks: [],
|
|
1799
1803
|
tags: testTags
|
|
1800
1804
|
};
|
|
1801
1805
|
const handler = options.handler;
|
|
@@ -2512,7 +2516,7 @@ async function collectTests(specs, runner) {
|
|
|
2512
2516
|
setHooks(file, fileHooks);
|
|
2513
2517
|
file.collectDuration = now$1() - collectStart;
|
|
2514
2518
|
} catch (e) {
|
|
2515
|
-
const errors = e instanceof AggregateError ? e.errors.map((e) => processError(e, runner.config.
|
|
2519
|
+
const errors = e instanceof AggregateError ? e.errors.map((e) => processError(e, runner.config._diffOptions)) : [processError(e, runner.config._diffOptions)];
|
|
2516
2520
|
file.result = {
|
|
2517
2521
|
state: "fail",
|
|
2518
2522
|
errors
|
|
@@ -2623,14 +2627,14 @@ async function callTestHooks(runner, test, hooks, sequence) {
|
|
|
2623
2627
|
try {
|
|
2624
2628
|
await Promise.all(hooks.map((fn) => limitMaxConcurrency(() => fn(test.context))));
|
|
2625
2629
|
} catch (e) {
|
|
2626
|
-
failTask(test.result, e, runner.config.
|
|
2630
|
+
failTask(test.result, e, runner.config._diffOptions);
|
|
2627
2631
|
}
|
|
2628
2632
|
} else {
|
|
2629
2633
|
for (const fn of hooks) {
|
|
2630
2634
|
try {
|
|
2631
2635
|
await limitMaxConcurrency(() => fn(test.context));
|
|
2632
2636
|
} catch (e) {
|
|
2633
|
-
failTask(test.result, e, runner.config.
|
|
2637
|
+
failTask(test.result, e, runner.config._diffOptions);
|
|
2634
2638
|
}
|
|
2635
2639
|
}
|
|
2636
2640
|
}
|
|
@@ -2995,12 +2999,12 @@ async function runTest(test, runner) {
|
|
|
2995
2999
|
test.result.state = "pass";
|
|
2996
3000
|
}
|
|
2997
3001
|
} catch (e) {
|
|
2998
|
-
failTask(test.result, e, runner.config.
|
|
3002
|
+
failTask(test.result, e, runner.config._diffOptions);
|
|
2999
3003
|
}
|
|
3000
3004
|
try {
|
|
3001
3005
|
await runner.onTaskFinished?.(test);
|
|
3002
3006
|
} catch (e) {
|
|
3003
|
-
failTask(test.result, e, runner.config.
|
|
3007
|
+
failTask(test.result, e, runner.config._diffOptions);
|
|
3004
3008
|
}
|
|
3005
3009
|
try {
|
|
3006
3010
|
await $("test.afterEach", () => callSuiteHook(suite, test, "afterEach", runner, [test.context, suite]));
|
|
@@ -3011,7 +3015,7 @@ async function runTest(test, runner) {
|
|
|
3011
3015
|
// Fixtures created for aroundEach will be cleaned up after aroundEach teardown
|
|
3012
3016
|
await callFixtureCleanupFrom(test.context, fixtureCheckpoint);
|
|
3013
3017
|
} catch (e) {
|
|
3014
|
-
failTask(test.result, e, runner.config.
|
|
3018
|
+
failTask(test.result, e, runner.config._diffOptions);
|
|
3015
3019
|
}
|
|
3016
3020
|
if (test.onFinished?.length) {
|
|
3017
3021
|
await $("test.onFinished", () => callTestHooks(runner, test, test.onFinished, "stack"));
|
|
@@ -3026,14 +3030,14 @@ async function runTest(test, runner) {
|
|
|
3026
3030
|
repeats: repeatCount
|
|
3027
3031
|
});
|
|
3028
3032
|
}).catch((error) => {
|
|
3029
|
-
failTask(test.result, error, runner.config.
|
|
3033
|
+
failTask(test.result, error, runner.config._diffOptions);
|
|
3030
3034
|
});
|
|
3031
3035
|
// Clean up fixtures that were created for aroundEach (before the checkpoint)
|
|
3032
3036
|
// This runs after aroundEach teardown has completed
|
|
3033
3037
|
try {
|
|
3034
3038
|
await callFixtureCleanup(test.context);
|
|
3035
3039
|
} catch (e) {
|
|
3036
|
-
failTask(test.result, e, runner.config.
|
|
3040
|
+
failTask(test.result, e, runner.config._diffOptions);
|
|
3037
3041
|
}
|
|
3038
3042
|
// skipped with new PendingError
|
|
3039
3043
|
if (test.result?.pending || test.result?.state === "skip") {
|
|
@@ -3167,7 +3171,7 @@ async function runSuite(suite, runner) {
|
|
|
3167
3171
|
try {
|
|
3168
3172
|
beforeAllCleanups = await $("suite.beforeAll", () => callSuiteHook(suite, suite, "beforeAll", runner, [suite]));
|
|
3169
3173
|
} catch (e) {
|
|
3170
|
-
failTask(suite.result, e, runner.config.
|
|
3174
|
+
failTask(suite.result, e, runner.config._diffOptions);
|
|
3171
3175
|
markTasksAsSkipped(suite, runner);
|
|
3172
3176
|
return;
|
|
3173
3177
|
}
|
|
@@ -3206,7 +3210,7 @@ async function runSuite(suite, runner) {
|
|
|
3206
3210
|
await Promise.all(contexts.map((context) => callFixtureCleanup(context)));
|
|
3207
3211
|
}
|
|
3208
3212
|
} catch (e) {
|
|
3209
|
-
failTask(suite.result, e, runner.config.
|
|
3213
|
+
failTask(suite.result, e, runner.config._diffOptions);
|
|
3210
3214
|
}
|
|
3211
3215
|
}
|
|
3212
3216
|
});
|
|
@@ -3215,7 +3219,7 @@ async function runSuite(suite, runner) {
|
|
|
3215
3219
|
if (!suiteRan) {
|
|
3216
3220
|
markTasksAsSkipped(suite, runner);
|
|
3217
3221
|
}
|
|
3218
|
-
failTask(suite.result, e, runner.config.
|
|
3222
|
+
failTask(suite.result, e, runner.config._diffOptions);
|
|
3219
3223
|
}
|
|
3220
3224
|
if (suite.mode === "run" || suite.mode === "queued") {
|
|
3221
3225
|
if (!runner.config.passWithNoTests && !hasTests(suite)) {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { d as TestArtifact, b as Test, S as Suite, e as SuiteHooks, f as FileSpecification, g as VitestRunner, F as File, h as TaskUpdateEvent, T as Task, i as TestAPI, j as SuiteAPI, k as SuiteCollector } from './tasks.d-
|
|
2
|
-
export { A as AfterAllListener, l as AfterEachListener, m as AroundAllListener, n as AroundEachListener, B as
|
|
1
|
+
import { d as TestArtifact, b as Test, S as Suite, e as SuiteHooks, f as FileSpecification, g as VitestRunner, F as File, h as TaskUpdateEvent, T as Task, i as TestAPI, j as SuiteAPI, k as SuiteCollector } from './tasks.d-BR8WBtGa.js';
|
|
2
|
+
export { A as AfterAllListener, l as AfterEachListener, m as AroundAllListener, n as AroundEachListener, B as BaselineData, o as BeforeAllListener, p as BeforeEachListener, q as BrowserTraceArtifact, r as CancelReason, s as FailureScreenshotArtifact, t as Fixture, u as FixtureFn, v as FixtureOptions, w as Fixtures, I as ImportDuration, x as InferFixturesTypes, O as OnTestFailedHandler, y as OnTestFinishedHandler, R as Retry, z as RunMode, D as RuntimeContext, E as SequenceHooks, G as SequenceSetupFiles, H as SerializableRetry, J as SuiteFactory, K as SuiteOptions, L as TaskBase, M as TaskCustomOptions, N as TaskEventData, P as TaskEventPack, Q as TaskHook, U as TaskMeta, W as TaskPopulated, X as TaskResult, Y as TaskResultPack, Z as TaskState, _ as TestAnnotation, $ as TestAnnotationArtifact, a0 as TestAnnotationLocation, a1 as TestArtifactBase, a2 as TestArtifactLocation, a3 as TestArtifactRegistry, a4 as TestAttachment, a5 as TestBenchmark, a6 as TestBenchmarkTask, a7 as TestContext, a8 as TestFunction, a9 as TestOptions, a as TestTagDefinition, aa as TestTags, ab as TestTryOptions, ac as Use, ad as VisualRegressionArtifact, V as VitestRunnerConfig, ae as VitestRunnerConstructor, af as VitestRunnerImportSource, ag as afterAll, ah as afterEach, ai as aroundAll, aj as aroundEach, ak as beforeAll, al as beforeEach, am as onTestFailed, an as onTestFinished } from './tasks.d-BR8WBtGa.js';
|
|
3
3
|
import { Awaitable } from '@vitest/utils';
|
|
4
|
-
import '
|
|
4
|
+
import 'tinybench';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* @experimental
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TestError, Awaitable } from '@vitest/utils';
|
|
2
|
-
import {
|
|
2
|
+
import { Statistics } from 'tinybench';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* This is a subset of Vitest config that's required for the runner to work.
|
|
@@ -27,7 +27,6 @@ interface VitestRunnerConfig {
|
|
|
27
27
|
hookTimeout: number;
|
|
28
28
|
retry: SerializableRetry;
|
|
29
29
|
includeTaskLocation: boolean | undefined;
|
|
30
|
-
diffOptions?: DiffOptions;
|
|
31
30
|
tags: TestTagDefinition[];
|
|
32
31
|
tagsFilter: string[] | undefined;
|
|
33
32
|
strictTags: boolean;
|
|
@@ -65,6 +64,10 @@ interface VitestRunnerConstructor {
|
|
|
65
64
|
new (config: VitestRunnerConfig): VitestRunner;
|
|
66
65
|
}
|
|
67
66
|
type CancelReason = "keyboard-input" | "test-failure" | (string & Record<string, never>);
|
|
67
|
+
interface TestTryOptions {
|
|
68
|
+
retry: number;
|
|
69
|
+
repeats: number;
|
|
70
|
+
}
|
|
68
71
|
interface VitestRunner {
|
|
69
72
|
/**
|
|
70
73
|
* First thing that's getting called before actually collecting and running tests.
|
|
@@ -91,10 +94,7 @@ interface VitestRunner {
|
|
|
91
94
|
/**
|
|
92
95
|
* Called before actually running the test function. Already has "result" with "state" and "startTime".
|
|
93
96
|
*/
|
|
94
|
-
onBeforeTryTask?: (test: Test, options:
|
|
95
|
-
retry: number;
|
|
96
|
-
repeats: number;
|
|
97
|
-
}) => unknown;
|
|
97
|
+
onBeforeTryTask?: (test: Test, options: TestTryOptions) => unknown;
|
|
98
98
|
/**
|
|
99
99
|
* When the task has finished running, but before cleanup hooks are called
|
|
100
100
|
*/
|
|
@@ -106,18 +106,12 @@ interface VitestRunner {
|
|
|
106
106
|
/**
|
|
107
107
|
* Called right after running the test function. Doesn't have new state yet. Will not be called, if the test function throws.
|
|
108
108
|
*/
|
|
109
|
-
onAfterTryTask?: (test: Test, options:
|
|
110
|
-
retry: number;
|
|
111
|
-
repeats: number;
|
|
112
|
-
}) => unknown;
|
|
109
|
+
onAfterTryTask?: (test: Test, options: TestTryOptions) => unknown;
|
|
113
110
|
/**
|
|
114
111
|
* Called after the retry resolution happened. Unlike `onAfterTryTask`, the test now has a new state.
|
|
115
112
|
* All `after` hooks were also called by this point.
|
|
116
113
|
*/
|
|
117
|
-
onAfterRetryTask?: (test: Test, options:
|
|
118
|
-
retry: number;
|
|
119
|
-
repeats: number;
|
|
120
|
-
}) => unknown;
|
|
114
|
+
onAfterRetryTask?: (test: Test, options: TestTryOptions) => unknown;
|
|
121
115
|
/**
|
|
122
116
|
* Called before running a single suite. Doesn't have "result" yet.
|
|
123
117
|
*/
|
|
@@ -674,6 +668,39 @@ interface Test<ExtraContext = object> extends TaskPopulated {
|
|
|
674
668
|
*/
|
|
675
669
|
artifacts: TestArtifact[];
|
|
676
670
|
fullTestName: string;
|
|
671
|
+
/**
|
|
672
|
+
* An array of benchmark results generated by `context.bench` function.
|
|
673
|
+
* The benchmark is added only after `bench().run` or `bench.compare` is resolved.
|
|
674
|
+
*
|
|
675
|
+
* @experimental
|
|
676
|
+
*/
|
|
677
|
+
benchmarks: TestBenchmark[];
|
|
678
|
+
}
|
|
679
|
+
interface TestBenchmark {
|
|
680
|
+
name: string;
|
|
681
|
+
tasks: TestBenchmarkTask[];
|
|
682
|
+
}
|
|
683
|
+
type TestBenchmarkStatistics = Statistics;
|
|
684
|
+
interface BaselineData {
|
|
685
|
+
latency: TestBenchmarkStatistics;
|
|
686
|
+
throughput: TestBenchmarkStatistics;
|
|
687
|
+
period: number;
|
|
688
|
+
totalTime: number;
|
|
689
|
+
}
|
|
690
|
+
interface TestBenchmarkTask {
|
|
691
|
+
name: string;
|
|
692
|
+
latency: TestBenchmarkStatistics;
|
|
693
|
+
throughput: TestBenchmarkStatistics;
|
|
694
|
+
period: number;
|
|
695
|
+
totalTime: number;
|
|
696
|
+
rank: number;
|
|
697
|
+
perProject?: boolean;
|
|
698
|
+
/**
|
|
699
|
+
* `true` when the task was produced by `bench.from()` rather than by
|
|
700
|
+
* executing a function. Reporters can use this to render the row as a
|
|
701
|
+
* static reference (no margin of error, no samples).
|
|
702
|
+
*/
|
|
703
|
+
fromStore?: boolean;
|
|
677
704
|
}
|
|
678
705
|
type Task = Test | Suite | File;
|
|
679
706
|
type TestFunction<ExtraContext = object> = (context: TestContext & ExtraContext) => Awaitable<any> | void;
|
|
@@ -1325,13 +1352,13 @@ type SequenceSetupFiles = "list" | "parallel";
|
|
|
1325
1352
|
/**
|
|
1326
1353
|
* Represents a file or data attachment associated with a test artifact.
|
|
1327
1354
|
*
|
|
1328
|
-
* Attachments can be either
|
|
1355
|
+
* Attachments can be either path-based (via `path`) or inline content (via `body`).
|
|
1329
1356
|
* The `contentType` helps consumers understand how to interpret the attachment data.
|
|
1330
1357
|
*/
|
|
1331
1358
|
interface TestAttachment {
|
|
1332
1359
|
/** MIME type of the attachment (e.g., 'image/png', 'text/plain') */
|
|
1333
1360
|
contentType?: string;
|
|
1334
|
-
/**
|
|
1361
|
+
/** Local file path or external HTTP(S) URL to the attachment. Relative paths are resolved from the project root. */
|
|
1335
1362
|
path?: string;
|
|
1336
1363
|
/** Inline attachment content as a string or raw binary data */
|
|
1337
1364
|
body?: string | Uint8Array | undefined;
|
|
@@ -1522,5 +1549,5 @@ interface TestArtifactRegistry {}
|
|
|
1522
1549
|
*/
|
|
1523
1550
|
type TestArtifact = BrowserTraceArtifact | FailureScreenshotArtifact | TestAnnotationArtifact | VisualRegressionArtifact | TestArtifactRegistry[keyof TestArtifactRegistry];
|
|
1524
1551
|
|
|
1525
|
-
export { afterAll as
|
|
1526
|
-
export type {
|
|
1552
|
+
export { afterAll as ag, afterEach as ah, aroundAll as ai, aroundEach as aj, beforeAll as ak, beforeEach as al, onTestFailed as am, onTestFinished as an, createChainable as c };
|
|
1553
|
+
export type { TestAnnotationArtifact as $, AfterAllListener as A, BaselineData as B, ChainableFunction as C, RuntimeContext as D, SequenceHooks as E, File as F, SequenceSetupFiles as G, SerializableRetry as H, ImportDuration as I, SuiteFactory as J, SuiteOptions as K, TaskBase as L, TaskCustomOptions as M, TaskEventData as N, OnTestFailedHandler as O, TaskEventPack as P, TaskHook as Q, Retry as R, Suite as S, Task as T, TaskMeta as U, VitestRunnerConfig as V, TaskPopulated as W, TaskResult as X, TaskResultPack as Y, TaskState as Z, TestAnnotation as _, TestTagDefinition as a, TestAnnotationLocation as a0, TestArtifactBase as a1, TestArtifactLocation as a2, TestArtifactRegistry as a3, TestAttachment as a4, TestBenchmark as a5, TestBenchmarkTask as a6, TestContext as a7, TestFunction as a8, TestOptions as a9, TestTags as aa, TestTryOptions as ab, Use as ac, VisualRegressionArtifact as ad, VitestRunnerConstructor as ae, VitestRunnerImportSource as af, Test as b, TestArtifact as d, SuiteHooks as e, FileSpecification as f, VitestRunner as g, TaskUpdateEvent as h, TestAPI as i, SuiteAPI as j, SuiteCollector as k, AfterEachListener as l, AroundAllListener as m, AroundEachListener as n, BeforeAllListener as o, BeforeEachListener as p, BrowserTraceArtifact as q, CancelReason as r, FailureScreenshotArtifact as s, Fixture as t, FixtureFn as u, FixtureOptions as v, Fixtures as w, InferFixturesTypes as x, OnTestFinishedHandler as y, RunMode as z };
|
package/dist/types.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { A as AfterAllListener, l as AfterEachListener, m as AroundAllListener, n as AroundEachListener, B as
|
|
1
|
+
export { A as AfterAllListener, l as AfterEachListener, m as AroundAllListener, n as AroundEachListener, B as BaselineData, o as BeforeAllListener, p as BeforeEachListener, q as BrowserTraceArtifact, r as CancelReason, s as FailureScreenshotArtifact, F as File, f as FileSpecification, t as Fixture, u as FixtureFn, v as FixtureOptions, w as Fixtures, I as ImportDuration, x as InferFixturesTypes, O as OnTestFailedHandler, y as OnTestFinishedHandler, R as Retry, z as RunMode, D as RuntimeContext, E as SequenceHooks, G as SequenceSetupFiles, H as SerializableRetry, S as Suite, j as SuiteAPI, k as SuiteCollector, J as SuiteFactory, e as SuiteHooks, K as SuiteOptions, T as Task, L as TaskBase, M as TaskCustomOptions, N as TaskEventData, P as TaskEventPack, Q as TaskHook, U as TaskMeta, W as TaskPopulated, X as TaskResult, Y as TaskResultPack, Z as TaskState, h as TaskUpdateEvent, b as Test, i as TestAPI, _ as TestAnnotation, $ as TestAnnotationArtifact, a0 as TestAnnotationLocation, d as TestArtifact, a1 as TestArtifactBase, a2 as TestArtifactLocation, a3 as TestArtifactRegistry, a4 as TestAttachment, a5 as TestBenchmark, a6 as TestBenchmarkTask, a7 as TestContext, a8 as TestFunction, a9 as TestOptions, a as TestTagDefinition, aa as TestTags, ab as TestTryOptions, ac as Use, ad as VisualRegressionArtifact, g as VitestRunner, V as VitestRunnerConfig, ae as VitestRunnerConstructor, af as VitestRunnerImportSource } from './tasks.d-BR8WBtGa.js';
|
|
2
2
|
import '@vitest/utils';
|
|
3
|
-
import '
|
|
3
|
+
import 'tinybench';
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { S as Suite, F as File, T as Task, a as TestTagDefinition, V as VitestRunnerConfig, b as Test } from './tasks.d-
|
|
2
|
-
export { C as ChainableFunction, c as createChainable } from './tasks.d-
|
|
1
|
+
import { S as Suite, F as File, T as Task, a as TestTagDefinition, V as VitestRunnerConfig, b as Test } from './tasks.d-BR8WBtGa.js';
|
|
2
|
+
export { C as ChainableFunction, c as createChainable } from './tasks.d-BR8WBtGa.js';
|
|
3
3
|
import { ParsedStack, Arrayable } from '@vitest/utils';
|
|
4
|
-
import '
|
|
4
|
+
import 'tinybench';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* If any tasks been marked as `only`, mark all other tasks as `skip`.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vitest/runner",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "5.0.0-beta.
|
|
4
|
+
"version": "5.0.0-beta.4",
|
|
5
5
|
"description": "Vitest test runner",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"funding": "https://opencollective.com/vitest",
|
|
@@ -44,7 +44,8 @@
|
|
|
44
44
|
],
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"pathe": "^2.0.3",
|
|
47
|
-
"
|
|
47
|
+
"tinybench": "^6.0.1",
|
|
48
|
+
"@vitest/utils": "5.0.0-beta.4"
|
|
48
49
|
},
|
|
49
50
|
"scripts": {
|
|
50
51
|
"build": "premove dist && rollup -c",
|