jest本身就是多进程执行文件,本次只是在学习工作线程的一次尝试
1、准备两个测试文件
test.js
const assert = require('assert')
describe('test',function (){
it('should ', function () {
assert.ok('1')
});
})
hello.test.js
const assert = require('assert')
describe('',function (){
it('should ', function () {
assert.ok('1')
});
})
2、main.js
//工作线程的代码都在其他文件里,所以不用判断isMainTread
const { Worker } = require("worker_threads");
// if(isMainThread){
let worker1 = new Worker(`${__dirname}/worker1.js`);
let worker2 = new Worker(`${__dirname}/worker2.js`);
worker1.on('message',function (msg){
console.log(msg+'111')
})
worker2.on('message',function (msg){
console.log(msg+'222')
})
// }
3、worker1.js
var process = require('child_process');
var cmd = 'jest /src/check_file/hello.test.js';
process.exec(cmd, function(error, stdout, stderr) {
console.log("stdout:"+stdout);
});
4、worker2.js
var process = require('child_process');
var cmd = 'jest /src/check_file/test.js';
process.exec(cmd, function(error, stdout, stderr) {
console.log("stdout:"+stdout);
});
5、执行main.js代码后,test.js/hello.test.js会以两个线程执行,生成的测试报告,也会分成两份