You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							52 lines
						
					
					
						
							2.0 KiB
						
					
					
				
			
		
		
	
	
							52 lines
						
					
					
						
							2.0 KiB
						
					
					
				/** | 
						|
 * 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 { AggregatedResult } from '@jest/test-result'; | 
						|
import { Context } from 'jest-runtime'; | 
						|
import { Test } from 'jest-runner'; | 
						|
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>; | 
						|
    cacheResults(tests: Array<Test>, results: AggregatedResult): void; | 
						|
} | 
						|
export {}; | 
						|
//# sourceMappingURL=index.d.ts.map
 |