【问题标题】:How to pass custom argument in inern 4如何在inern 4中传递自定义参数
【发布时间】:2017-12-02 12:01:39
【问题描述】:

我一直在从我的产品中开发实习自动化测试。我为此使用了实习生版本 3。但自从实习生的第 4 版已经到来,我试图熟悉它。现在我的问题是如何将自定义参数传递给实习生 4。我实习生 3 曾经像这样通过 start 命令传递它

node_modules/intern/runner.js config=/Automation/intern -leaveRemoteOpen arg1=arg1 arg2=arg2

并使用inter.args.arg1 捕捉这些论点。

但是由于在实习生 4 中我开始使用 npm test 命令进行测试,我无法弄清楚如何传递自定义参数以及如何在代码中捕获它,因为实习生 4 使用打字稿。

【问题讨论】:

    标签: intern


    【解决方案1】:

    实习生 4 将像实习生 3 一样接受任意配置参数;它们的访问方式略有不同。在实习生 4 中,您使用 intern.config 对象而不是 intern.args。例如,使用命令行:

    $ npx intern foo=bar
    

    JS 测试可以访问参数 foo:

    'some test'() {
        const foo = intern.config.foo;
    }
    

    假设您使用的是 TypeScript,您需要将 intern.config 转换为 any 以获取自定义参数:

    'some test'() {
        const foo = (<any>intern.config).foo;
    }
    

    【讨论】:

    • 老实说,这是 100% 的最佳答案。当我写我的答案时,我不知道intern.config 的使用。试过这个,效果很好。谢谢你:)
    【解决方案2】:

    我今天花了一些时间来解决这个问题,希望能实现您的要求。

    我已经在我的工作场所和我自己的使用实习生 4 的个人项目中构建了自己的自动化框架,但没有意识到实习生 4 让这种事情变得如此复杂。

    就目前而言,我通过以下解决方案实现了您正在寻找的结果。

    我正在通过自定义 npm 脚本运行我的实习生功能套件,就像您已经描述的那样。我已将自己的脚本添加到我的 package.json 文件中,并发送了两个参数,我称之为 myArg1myArg2 仅用于此示例。

    所以我的package.json脚本如下:

    "scripts": {
        "test-ui": "./node_modules/.bin/intern config=/path_to_my_intern.json_config myArg1 myArg2"
    }
    

    现在我可以使用npm run test-ui 执行此操作。

    那么如何在你的实习测试中检索这两个参数呢?您可以使用以下内容:

    process.argv[3]; // Will return 'myArg1'
    process.argv[4]; // Will return 'myArg2'
    

    基本上,process.argv 的使用将返回一个包含所有参数的数组,而我的另外两个参数在索引 3 和索引 4 处传入。您会在该数组的某处找到命令行参数(可能在同一索引处)我的职位)。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-26
      • 2015-11-16
      • 2021-08-18
      • 2017-02-07
      • 2018-06-27
      • 1970-01-01
      相关资源
      最近更新 更多