jest和mocha之间的机制有着显著的不同,jest具体使用可以看官方文档,这里只简单说明下
两种框架的不同点
1、jest没有this指向,在mocha中可以运行this,如this.skip()等,但是jest中的跳过只能是使用it.skip(),这种形式。
2、jest是多进程的,全局处理globalSetup和globalTeardown中赋值的变量,是不能传递出去的。
如果要传递出去,需要将并行改为串行,添加runInBand参数即可
testEnvironment: "node",
automock: false,
runInBand: true,
globalTeardown: "./src/config/global/teardown.js",
globalSetup: "./src/config/global/setup.js",
3、mocha中可以使用this._runnable.title或者this.test.title获取名称,但是在jest中则需要
expect.getState().currentTestName;
上面的方法,并不是仅获取当前it测试用例的名称,而是同时获取了describe的名称
4、mocha可以通过gulp执行指定目录下的指定文件,jest也可以,但是需要传递参数,如下
gulp.task('list', function () {
let config = publicConfig;
config.testRegex = [
"./src/api/login/dologin.js",
"./src/api/list/homepage.js",
"./src/api/list/keyword.js",
"./src/api/list/regular.js",
".src/api/list/task_instance.js"
];
return gulp.src('src/api').pipe(jest(config));
})