Javascript 动态创建Mocha测试套件

Javascript 动态创建Mocha测试套件,javascript,testing,automated-tests,mocha.js,Javascript,Testing,Automated Tests,Mocha.js,我正在尝试实现一个应用程序,它将测试配置/用例作为输入(yaml/json)文件,并执行大量断言 case: - operation: fetch_user args: - name: id value: 1 - checks: - attribute: username expected_value: user1 - attribute: email expected_value: user1@test.com 我想编写通用测试块(

我正在尝试实现一个应用程序,它将测试配置/用例作为输入(yaml/json)文件,并执行大量断言

case:
 - operation: fetch_user
  args:
  - name: id
    value: 1
 - checks:
   - attribute: username
     expected_value: user1
   - attribute: email
     expected_value: user1@test.com    
我想编写通用测试块(it())来动态执行断言

我试过了

我正在index.js中获取用户信息,并在assertion.js文件中拥有断言

index.js

//读取yaml文件
const body=userService.get(userId);
body.then(userResponse=>{
const suite=createTestSuite(“测试”、检查、用户响应);
suite.run();
});
assertion.js


函数createTestSuite(名称、检查、用户响应){
let suite=新套件(“Moch测试”);
addTest(新测试(“检查用户名”),()=>{
expect(userResponse.username).to.equal(checks.expected\u username);
}));
返回套房;
}
--delay
选项应该有帮助()

尝试类似(未经测试)的方法:

//test.js
//使用'mocha--delay test.js运行`
//getData将返回一个承诺,该承诺通过测试数据数组实现
getData()。然后(testData=>{
描述(‘摩卡测试’,功能(){
testData.forEach(数据=>{
它('应该处理数据',函数(){
//这里的断言
});
});
});
run();//这是启动测试运行的全局
});
--delay
选项使测试运行等待,直到您调用
run()
,这允许您在定义测试之前执行异步操作(例如,收集一些数据)

Mocha目前不支持异步套件,这使得从异步数据源动态生成测试非常困难