Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio code VS Code Jest和Cypress intellisense不能与Chai正常工作_Visual Studio Code_Jestjs_Intellisense_Cypress - Fatal编程技术网

Visual studio code VS Code Jest和Cypress intellisense不能与Chai正常工作

Visual studio code VS Code Jest和Cypress intellisense不能与Chai正常工作,visual-studio-code,jestjs,intellisense,cypress,Visual Studio Code,Jestjs,Intellisense,Cypress,我使用Jest作为单元测试框架,下面的intellisense是正确的: 但是,在安装Cypress Cypress:^3.2.0时,类型“Assertion”上不存在显示错误属性“toMatch”的同一代码。你是说“比赛”吗?。IMO的原因是在节点_modules/Cypress/types/chai/index.d.ts下安装Cypress typings,VS代码选择它们用于intellisense。Jest和Cypress都依赖于库。安装Cypress后的Intellisense:

我使用Jest作为单元测试框架,下面的intellisense是正确的:

但是,在安装Cypress Cypress:^3.2.0时,类型“Assertion”上不存在显示错误属性“toMatch”的同一代码。你是说“比赛”吗?。IMO的原因是在节点_modules/Cypress/types/chai/index.d.ts下安装Cypress typings,VS代码选择它们用于intellisense。Jest和Cypress都依赖于库。安装Cypress后的Intellisense:


有没有办法告诉VS代码在特定文件夹中使用哪个智能感知?或者有没有办法在jsconfig.json文件中指定它?

解决方案是为在中公开的全局变量创建别名 并在JSDoc中用@type修饰这些变量。因此,我在测试所在的同一目录中创建了一个文件jestGlobals.js

jestGlobals.js文件:为了简单起见,我只包含了一个全局变量,但是您可以对所有全局变量执行相同的操作:

/** @type {jest.Expect} */
// @ts-ignore
let expect = global.expect

export { expect }
然后,我只需在我的*.spec.js文件中导入这些变量:

现在,当我使用这个别名时,我得到了如下正确的智能感知:

解决方案是为中公开的全局变量创建别名 并在JSDoc中用@type修饰这些变量。因此,我在测试所在的同一目录中创建了一个文件jestGlobals.js

jestGlobals.js文件:为了简单起见,我只包含了一个全局变量,但是您可以对所有全局变量执行相同的操作:

/** @type {jest.Expect} */
// @ts-ignore
let expect = global.expect

export { expect }
然后,我只需在我的*.spec.js文件中导入这些变量:

现在,当我使用这个别名时,我得到了如下正确的智能感知:
我自己也要面对这个问题

通常我可以用心输入断言,但当您确实需要自动完成时,添加

/// 测试套件文件顶部的一个按钮将为您提供正确的jest类型

注意:您也需要安装


我自己也面对这个问题

通常我可以用心输入断言,但当您确实需要自动完成时,添加

/// 测试套件文件顶部的一个按钮将为您提供正确的jest类型

注意:您也需要安装


柏树和笑话也有同样的问题

我通过创建两个jsconfig.json解决了这个问题

{
  "typeAcquisition": { "include": ["cypress"] }
}
{
  "typeAcquisition": { "include": ["jest"] }
}
cypress/jsconfig.json

{
  "typeAcquisition": { "include": ["cypress"] }
}
{
  "typeAcquisition": { "include": ["jest"] }
}
然后是我的src文件夹

src/jsconfig.json

{
  "typeAcquisition": { "include": ["cypress"] }
}
{
  "typeAcquisition": { "include": ["jest"] }
}

重新启动VSCode并按预期工作

与cypress和jest有相同的问题

我通过创建两个jsconfig.json解决了这个问题

{
  "typeAcquisition": { "include": ["cypress"] }
}
{
  "typeAcquisition": { "include": ["jest"] }
}
cypress/jsconfig.json

{
  "typeAcquisition": { "include": ["cypress"] }
}
{
  "typeAcquisition": { "include": ["jest"] }
}
然后是我的src文件夹

src/jsconfig.json

{
  "typeAcquisition": { "include": ["cypress"] }
}
{
  "typeAcquisition": { "include": ["jest"] }
}

重新启动VSCode,并按预期工作

我将编辑注释。您还需要安装@types/jest!我将编辑评论。您还需要安装@types/jest!