【问题标题】:Code Completion for Nightwatch.js in Eclipse, IntelliJ IDEA or WebStormEclipse、IntelliJ IDEA 或 WebStorm 中 Nightwatch.js 的代码完成
【发布时间】:2017-05-31 07:31:13
【问题描述】:

我是 JavaScript 开发的新手。通常我用 Eclipse 用 Ja​​va 实现测试自动化。但现在我们改用 JavaScript,我们想将 Nightwatch.js 和 Cucumber.js 一起使用来自动化我们的 Blackbox 测试。

所以,我必须配置我的 IDE,以便我可以使用代码完成和“转到参考”。我用 Eclipse、IntelliJ IDEA 和 WebStorm 尝试了很多东西。但是在 Eclipse(使用 Nodeclipse)中,如果我想直接跳转到一个函数中,我无法实现代码完成和“转到参考”。在 IDEA 和 WebStorm 中,“转到参考”功能有效,但 Nightwatch.js 的整个代码完成功能无效。

不建议使用像 waitForElementVisible() 这样的 Nightwatch.js 方法。所以这不是一个完整的代码完成。

如何实现在给定 IDE 之一中使用整个代码完成功能?我必须在 IDE 中配置 Nightwatch.js 吗?我在哪里可以做到这一点?

【问题讨论】:

    标签: eclipse intellij-idea webstorm nightwatch.js code-completion


    【解决方案1】:

    很遗憾,此模块无法完成,除非有人为其创建存根库(d.ts 或 js)。定义的方式很棘手。让我们看看测试通常是什么样子的:

    module.exports = {
        'suit name': function(client)
        {     
            client.url('https://...')
                .waitForElementVisible('body', 1000) //not resolved
                ...
    

    首先,IDE 无法知道 'client' 参数类型是什么。但是,即使我们通过 JSDoc 注释将其声明为 'Nightwatch',您仍然不会得到任何完成,因为此函数在代码中的任何位置都没有定义为 Nightwatch 属性。相反,一旦加载了 spec 模块,函数名称将作为参数传递给 node_modules/nightwatch/lib/core/api.js 中的 loadCommandModule() 函数,然后按名称加载模块使用module.call()。静态代码分析时无法解析此类属性

    【讨论】:

      猜你喜欢
      • 2020-06-22
      • 1970-01-01
      • 1970-01-01
      • 2014-12-22
      • 1970-01-01
      • 2014-10-20
      • 2016-06-10
      • 1970-01-01
      • 2020-06-16
      相关资源
      最近更新 更多