56 lines
1.4 KiB
JavaScript
56 lines
1.4 KiB
JavaScript
// https://molunerfinn.com/Use-Jest-To-Test-Vue-Koa/#Koa%E5%90%8E%E7%AB%AFApi%E6%B5%8B%E8%AF%95
|
|
//https://jestjs.io/docs/api#testeachtablename-fn-timeout
|
|
//Jest CLI选项 : https://runebook.dev/zh-CN/docs/jest/cli#--forceexit
|
|
//匹配器:https://www.jianshu.com/p/c1b5676c1edd
|
|
const bamboo = require('./lib/main')
|
|
const glob = require("glob")
|
|
const path = require('path')
|
|
import request from 'supertest';
|
|
|
|
let server = ""
|
|
let list = []
|
|
|
|
/*当前根目录*/
|
|
function isPath(args) {
|
|
return path.resolve('./' + (args || ""))
|
|
}
|
|
|
|
function load(directory) {
|
|
const path_root = isPath()
|
|
let files = glob.sync(directory)
|
|
files = files.map(item => {
|
|
const parse = path.parse(item);
|
|
parse.father = path.basename(path.resolve(parse.dir, '..'))
|
|
parse.file_father = path.basename(path.resolve(parse.dir + '/' + parse.name, '..'))
|
|
return {
|
|
parse,
|
|
res: require(path.resolve(path_root + "/" + item))
|
|
}
|
|
})
|
|
return files
|
|
}
|
|
|
|
list = load("app/*/test/*.js")
|
|
|
|
beforeAll(() => {
|
|
return new Promise((resolve, reject) => {
|
|
bamboo.fullList.push(async (app) => {
|
|
server = app.server
|
|
//恢复测试数据镜像sql文件
|
|
await app.db.tool.reduction()
|
|
resolve()
|
|
})
|
|
})
|
|
|
|
});
|
|
afterAll(() => {
|
|
server.close();
|
|
console.log('服务器关闭!');
|
|
});
|
|
|
|
|
|
describe.each(list)('测试清单名称:$res.describe_name', (testDescribe) => {
|
|
test.each(testDescribe.res.testList)('测试名称:$test_name', async (o) => await o.fun(request, server));
|
|
});
|
|
|