Jestjs 将mocha测试更改为jest测试

Jestjs 将mocha测试更改为jest测试,jestjs,Jestjs,我很难把我的摩卡咖啡测试改成笑话测试 我有三个测试文件,其中包含三个类:FirstTestGroup、SecondTestGroup和ThirdTestGroup,每个类都有一个静态执行方法,其中包含一些测试,如下所示: class-FirstTestGroup{ 执行(参数){ 描述('一些测试',功能测试(){ 它('一次测试',()=>{ //使用参数 }); ... }); ... } } 每个执行方法都使用相同的参数。这些参数是在异步before调用中创建的,如下所示 descrip

我很难把我的摩卡咖啡测试改成笑话测试

我有三个测试文件,其中包含三个类:FirstTestGroup、SecondTestGroup和ThirdTestGroup,每个类都有一个静态执行方法,其中包含一些测试,如下所示:

class-FirstTestGroup{
执行(参数){
描述('一些测试',功能测试(){
它('一次测试',()=>{
//使用参数
});
...
});
...
}
}
每个执行方法都使用相同的参数。这些参数是在异步before调用中创建的,如下所示

description('My Tests',function testSuite()){
让params;
在('param creation',async function asyncFunc()之前{
//异步创建参数
});
它('应该通过所有',()=>{
FirstTestGroup.execute(参数);
SecondTestGroup.execute(参数);
第三测试组。执行(参数);
});
});
它('should pass all',…)是必需的,因为descripe中的所有内容都会立即运行,因此参数在没有它的情况下将作为null传递。这在摩卡很有效,因为“它”可以嵌套,但显然这不是开玩笑的情况

我可以在每次运行测试组之前调用beforeAll(相当于before in jest),但我不想这样做,因为这似乎效率低下

在定义descripe('mytests',…)之前,我还可以将代码放在before调用中。这似乎是错误的,因为这应该只是描述的一部分

我在文档中找不到任何对我有帮助的东西

我做错什么了吗?即使我不得不重新构造测试,是否有一种方法可以通过jest实现这一点?但是我想把测试保存在不同的文件中


这是我在这里的第一个问题,请告诉我是否需要更多信息,因为我不习惯在这里写东西。

你试过Jest Codemods了吗

Jest Codemods允许您将Mocha、AVA、Jasmine测试转换为等效的Jest测试。它还可以帮助您迁移断言库,如Chai和Expect

你这样做的方式:

使用
npm安装-g jest-codemods安装jest-codemods

转到您的项目并执行
jest codemods

它将询问您希望从哪个测试库迁移?

使用箭头键选择Mocha(如要从Mocha迁移)

接下来,它会问您
是否将Node.js上的Jest用作测试运行程序?

选择
Yes,使用Jest提供的globals(推荐)

最后,您需要提供从Mocha迁移到Jest的文件名

你完了


它会自动将您的代码从Mocha迁移到Jest。不需要触摸代码。这是Jest最强大的功能之一,可以节省您的时间,您无需担心将mocha测试更改为Jest测试。

您好,我将尝试一下,看看它会生成什么,谢谢。我不知道你是否能看到谁投了反对票,但不是我。但即使这确实有效,我确实认为它只是部分回答了我的问题,因为我一直在寻找一些东西来解释为什么jest Behavior在这一部分不同于mocha。这是一个很好的答案,以前不知道jest codemods,现在将尝试使用它——只是被升级了!