Jest 平台
您可以挑选 Jest 的特定功能并将其用作独立包。以下是可用包的列表
jest-changed-files
用于识别 git/hg 存储库中修改文件的工具。导出两个函数
getChangedFilesForRoots
返回一个 promise,该 promise 解析为一个包含更改的文件和存储库的对象。findRepos
返回一个 promise,该 promise 解析为指定路径中包含的一组存储库。
示例
const {getChangedFilesForRoots} = require('jest-changed-files');
// print the set of modified files since last commit in the current repo
getChangedFilesForRoots(['./'], {
lastCommit: true,
}).then(result => console.log(result.changedFiles));
您可以在 自述文件 中详细了解 jest-changed-files
。
jest-diff
用于可视化数据更改的工具。导出一个函数,该函数比较两种类型的两个值,并返回一个“漂亮打印”的字符串,说明两个参数之间的差异。
示例
const {diff} = require('jest-diff');
const a = {a: {b: {c: 5}}};
const b = {a: {b: {c: 6}}};
const result = diff(a, b);
// print diff
console.log(result);
jest-docblock
用于提取和解析 JavaScript 文件顶部注释的工具。导出各种函数来操作注释块中的数据。
示例
const {parseWithComments} = require('jest-docblock');
const code = `
/**
* This is a sample
*
* @flow
*/
console.log('Hello World!');
`;
const parsed = parseWithComments(code);
// prints an object with two attributes: comments and pragmas.
console.log(parsed);
您可以在 自述文件 中详细了解 jest-docblock
。
jest-get-type
识别任何 JavaScript 值的原始类型的模块。导出一个函数,该函数返回一个字符串,其中包含作为参数传递的值的类型。
示例
const {getType} = require('jest-get-type');
const array = [1, 2, 3];
const nullValue = null;
const undefinedValue = undefined;
// prints 'array'
console.log(getType(array));
// prints 'null'
console.log(getType(nullValue));
// prints 'undefined'
console.log(getType(undefinedValue));
jest-validate
用于验证用户提交的配置的工具。导出一个函数,该函数接受两个参数:用户的配置和一个包含示例配置和其他选项的对象。返回值是一个包含两个属性的对象
hasDeprecationWarnings
,一个布尔值,指示提交的配置是否具有弃用警告,isValid
,一个布尔值,指示配置是否正确。
示例
const {validate} = require('jest-validate');
const configByUser = {
transform: '<rootDir>/node_modules/my-custom-transform',
};
const result = validate(configByUser, {
comment: ' Documentation: http://custom-docs.com',
exampleConfig: {transform: '<rootDir>/node_modules/babel-jest'},
});
console.log(result);
您可以在 自述文件 中详细了解 jest-validate
。
jest-worker
用于并行化任务的模块。导出一个类 JestWorker
,它接受 Node.js 模块的路径,并允许您像调用类方法一样调用模块的导出方法,返回一个 promise,该 promise 在指定方法在分叉进程中完成执行时解析。
示例
heavy-task.js
module.exports = {
myHeavyTask: args => {
// long running CPU intensive task.
},
};
main.js
async function main() {
const worker = new Worker(require.resolve('./heavy-task.js'));
// run 2 tasks in parallel with different arguments
const results = await Promise.all([
worker.myHeavyTask({foo: 'bar'}),
worker.myHeavyTask({bar: 'foo'}),
]);
console.log(results);
}
main();
您可以在 自述文件 中详细了解 jest-worker
。
pretty-format
导出一个函数,该函数将任何 JavaScript 值转换为人类可读的字符串。开箱即用地支持所有内置 JavaScript 类型,并允许通过用户定义的插件扩展应用程序特定类型。
示例
const {format: prettyFormat} = require('pretty-format');
const val = {object: {}};
val.circularReference = val;
val[Symbol('foo')] = 'foo';
val.map = new Map([['prop', 'value']]);
val.array = [-0, Infinity, NaN];
console.log(prettyFormat(val));
您可以在 自述文件 中详细了解 pretty-format
。