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
Javascript visual studio代码中cypress的intellisense丢失_Javascript_Visual Studio Code_Cypress - Fatal编程技术网

Javascript visual studio代码中cypress的intellisense丢失

Javascript visual studio代码中cypress的intellisense丢失,javascript,visual-studio-code,cypress,Javascript,Visual Studio Code,Cypress,我遇到了一个非常奇怪的问题 我创建了一个非常基本和简单的cypress项目,只有示例测试用例,没有任何其他的依赖项 当我第一次在VisualStudio代码中打开此项目时,当鼠标悬停到某个方法后,我可以看到一个带有签名帮助的弹出窗口,右键单击选择的方法“转到定义”,我就可以打开该文件。 在我写了一个代码“cy.”之后发生了奇怪的事情,它假设给我智能代码建议,但没有任何建议,鼠标悬停到任何方法签名帮助消失,右键单击选择的方法“转到定义”我得到了“没有为'XXX'找到定义” 我问过很多开发者,但

我遇到了一个非常奇怪的问题

我创建了一个非常基本和简单的cypress项目,只有示例测试用例,没有任何其他的依赖项

当我第一次在VisualStudio代码中打开此项目时,当鼠标悬停到某个方法后,我可以看到一个带有签名帮助的弹出窗口,右键单击选择的方法“转到定义”,我就可以打开该文件。

在我写了一个代码“cy.”之后发生了奇怪的事情,它假设给我智能代码建议,但没有任何建议,鼠标悬停到任何方法签名帮助消失,右键单击选择的方法“转到定义”我得到了“没有为'XXX'找到定义”


我问过很多开发者,但没人能回答,请帮忙,谢谢

请检查您的文件顶部是否有

/// <reference types="Cypress" />

我的行为与你在9月23日的评论中描述的相同。我意识到这是由我定制的柏树命令引起的。在链接我的自定义命令之前,我会得到代码完成,但不是之后

为了解决这个问题,我在
cypress/support
中添加了一个
index.d.ts
文件,其中包含以下内容:

declare namespace Cypress {
  interface Chainable<Subject> {
    /**
     * Log in via UI
     * @example
     * cy.login(username: string, password: string)
     */
    login(): Chainable<any>
    /**
     * Log in via API
     * @example
     * cy.apiLogin()
     */
    apiLogin(): Chainable<any>

    /**
     * Wait for viewer to load
     * @example
     *  cy.waitForFirstLoad()
     */
    waitForFirstLoad(): Chainable<any>

    /**
     * Log out
     * @example
     *  cy.logout()
     */
    logout(): Chainable<any>
  }
}
{
    "$schema": "https://on.cypress.io/cypress.schema.json"
}

希望它有帮助

您可以覆盖Cypress配置文件,使“智能代码完成”功能在整个项目中都可用

要执行此操作,请转到projectName/cypress.json并添加以下内容:

declare namespace Cypress {
  interface Chainable<Subject> {
    /**
     * Log in via UI
     * @example
     * cy.login(username: string, password: string)
     */
    login(): Chainable<any>
    /**
     * Log in via API
     * @example
     * cy.apiLogin()
     */
    apiLogin(): Chainable<any>

    /**
     * Wait for viewer to load
     * @example
     *  cy.waitForFirstLoad()
     */
    waitForFirstLoad(): Chainable<any>

    /**
     * Log out
     * @example
     *  cy.logout()
     */
    logout(): Chainable<any>
  }
}
{
    "$schema": "https://on.cypress.io/cypress.schema.json"
}

参考资料:

经过数小时的痛苦调查后,我发现如果您不想在每个文件的顶部包含三重斜杠指令,请在
index.d.ts
文件中执行此操作:

declare global {
  namespace Cypress {
    interface Chainable<Subject> {
      /**
       * Should login
       * @param user
       * @example cy.login()
       */
      login(user?: string): Chainable<any>;
    }
  }
}
声明全局{
名称空间柏树{
可链接接口{
/**
*应该登录吗
*@param用户
*@example.login()
*/
登录(用户?:字符串):可链接;
}
}
}

这就是修复我的VS代码IntelliSense的原因,因此我的自定义命令将自动完成,并将鼠标悬停在上面将显示JSDocs。

是的,我有“//”和“tsconfig.json”(你可以在我的屏幕截图中看到它们),奇怪的是我第一次得到了“签名帮助”,但在键入“cy”之后丢失了它。在m的情况下,//引用文件顶部缺少标记。在我添加了它之后,intellisense又出现了。添加了一个“noEmit”:在编译器选项上为true以避免覆盖消息错误,并重新加载VSCode。不需要“//”,只需要tsconfig.json。顺便说一句,对于同一个项目,智能代码建议在WebStorm中运行良好。我认为这只是针对
cypress.json
;它将自动完成并仅在该文件中描述JSON道具。