12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- /**
- * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
- import type { AggregatedResult } from '@jest/test-result';
- import type { Test } from 'jest-runner';
- import type { Context } from 'jest-runtime';
- declare type Cache = {
- [key: string]: [0 | 1, number];
- };
- /**
- * The TestSequencer will ultimately decide which tests should run first.
- * It is responsible for storing and reading from a local cache
- * map that stores context information for a given test, such as how long it
- * took to run during the last run and if it has failed or not.
- * Such information is used on:
- * TestSequencer.sort(tests: Array<Test>)
- * to sort the order of the provided tests.
- *
- * After the results are collected,
- * TestSequencer.cacheResults(tests: Array<Test>, results: AggregatedResult)
- * is called to store/update this information on the cache map.
- */
- export default class TestSequencer {
- private _cache;
- _getCachePath(context: Context): string;
- _getCache(test: Test): Cache;
- /**
- * Sorting tests is very important because it has a great impact on the
- * user-perceived responsiveness and speed of the test run.
- *
- * If such information is on cache, tests are sorted based on:
- * -> Has it failed during the last run ?
- * Since it's important to provide the most expected feedback as quickly
- * as possible.
- * -> How long it took to run ?
- * Because running long tests first is an effort to minimize worker idle
- * time at the end of a long test run.
- * And if that information is not available they are sorted based on file size
- * since big test files usually take longer to complete.
- *
- * Note that a possible improvement would be to analyse other information
- * from the file other than its size.
- *
- */
- sort(tests: Array<Test>): Array<Test>;
- allFailedTests(tests: Array<Test>): Array<Test>;
- cacheResults(tests: Array<Test>, results: AggregatedResult): void;
- }
- export {};
|