1

我的 ubuntu 机器上安装了 newman 3.9.3 版本。想从一个文件夹中执行多个集合,但通过我执行 js 文件,有线错误说

TypeError: newman.run 不是函数。

这是我的执行脚本。任何帮助将不胜感激。

#!/usr/bin/env node
var newman = require(process.env.NVM_BIN+'/newman');
var fs = require('fs');

fs.readdir('./collections', function (err, files) {
    if (err) { throw err; }

    files = files.filter(function (file) {
        return (file.substr(-5) === '.json');
    });

    // now wer iterate on each file name and call newman.run using each file name
    files.forEach(function (file) {
        newman.run({
            environment: require(`${__dirname}/live.postmane_environment.json`),
            collection: require(`${__dirname}/collections/${file}`),
            reporters: ['cli']
        }, function (err) {
            console.info(`${file}: ${err ? err.name : 'ok'}!`);
        });
    });
});

以下是确切的错误。

/app/postman/execute:15 newman.run({ ^

TypeError: newman.run is not a function at /app/postman/execute:15:16 at Array.forEach (native) at /app/postman/execute:14:11 at FSReqWrap.oncomplete (fs.js:123:15 )

4

2 回答 2

0

目前,我已经通过使用 bash 脚本运行文件夹中所有可用的集合来解决这个问题。这已经完成了这项工作。但最初我不明白为什么“newman”对象不能使用“run”。

于 2018-03-18T05:35:12.943 回答
0

我收到了相同的错误消息并解决了安装 nodejs 包的问题:

npm install --save newman

基本上,当您将 bin 作为参考时,nodejs 不知道如何运行:

代替:

var newman = require(process.env.NVM_BIN+'/newman');

应该:

var newman = require('newman');
于 2018-05-30T11:14:48.640 回答