加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – karma start – 传递参数

发布时间:2020-12-17 08:53:27 所属栏目:安全 来源:网络整理
导读:有没有办法通过Karma命令行传递参数然后在测试中的某处读取?例如,这是想要的: karma start -branding="clientX" 然后在我的规范的某个地方我需要访问这个变量(我需要“clientX”值). 这有可能吗? 可以将参数传输到测试用例.这可能有点棘手.您可以做的是检
有没有办法通过Karma命令行传递参数然后在测试中的某处读取?例如,这是想要的:
karma start -branding="clientX"

然后在我的规范的某个地方我需要访问这个变量(我需要“clientX”值).

这有可能吗?

可以将参数传输到测试用例.这可能有点棘手.您可以做的是检查测试套件中的__karma __.config.args:
it("get karma args",function () {
    console.log(__karma__.config.args);
});

业力跑

如果你想通过karma运行传递参数,那么上面就是你所需要的.

然后,如果你做业力开始然后业力运行 – 你应该在控制台上看到:

LOG: ['--foo']

注意传递给karma run的参数如何在__karma __.config.args中结束.另请注意,在业力运行中的第一个双击 – – foo是将Karma参数与“客户参数”分开是必要的. (业力开始并没有同样的区别.)

业力开始

业力开始有所不同.

如果你使用karma init创建的默认karma.conf.js,你将无法通过karma start –single-run –foo以这种方式传递参数.你需要修改你的karma.conf.js来传递参数:

module.exports = function(config) {
  config.set({
    client: {
        args: config.foo ? ["--foo"] : [],},

如果你运行karma start –single-run –foo,那么你将获得与之前运行相同的输入.

如果我必须传递多个参数,我会扫描process.argv以过滤掉那些仅用于Karma的好处的部分,并将其余部分传递给args而不是测试每种可能性.

你可能从上面推断出,当你的业力开始时 – 单一运行 – 这个论点最终成为karma.conf.js中的config.something.

完整的例子

此示例针对Karama 1.1.x和Karma 1.2.0进行了测试.它显示了我上面讨论的相同方法,以使命令行参数通过client.args传输.这适用于业力开始和业力运行.我还添加了一个方法来传递值而不通过client.args(这是品牌推广示例).但是,此方法不适用于业力运行.

karma.conf.js:

module.exports = function(config) {
  config.set({
    basePath: '',client: {
        // Example passing through `args`.
        args: config.foo ? ["--foo"] : [],// It is also possible to just pass stuff like this,// but this works only with `karma start`,not `karma run`.
        branding: config.branding,frameworks: ['jasmine'],files: [
      'test/**/*.js'
    ],exclude: [],preprocessors: {},reporters: ['progress'],port: 9876,colors: true,logLevel: config.LOG_INFO,autoWatch: true,browsers: ['Chrome'],singleRun: false
  });
};

测试/ test.js:

it("get karma arg",function () {
    console.log("BRANDING",__karma__.config.branding);
    console.log("ARGS",__karma__.config.args);
});

如果你运行karma start –single-run –foo –branding = q,你得到:

LOG: 'BRANDING','q'
LOG: 'ARGS',['--foo']

如果你启动Karma然后使用karma run – –foo –branding = q,你会得到:

LOG: 'BRANDING',undefined
LOG: 'ARGS',['--foo','--branding=q']

如上所述,当使用karma运行时,所有内容都必须通过config.args才能在测试中看到.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读