mocha test将`test`作为变量发送到节点app

时间:2015-06-09 09:25:58

标签: node.js unit-testing

为我的输入文件index.js编写测试时,我遇到了mocha test命令test作为[{1}}参数传递的问题,因为它使用index.js 1}}接收在开发环境中运行的参数。我曾经想过通过使用类似process.argv之类的命名参数来解决这个问题,但是在运行测试时这个问题仍然存在。这样我的测试就不会使用我的测试套装中提供的对象,如下面的代码所示。

如何解决这个问题,以便在运行我的测试时,它使用我在测试设置中提供的minimist对象,而不是命令event

index.js

mocha test

test.js

'use strict';


var _ = require("underscore");
var async = require('async');
var argv = require("minimist")(process.argv.slice(2));

var getprotocol = require("./getProtocol");
var _getprotocol = getprotocol.getProtocol;

var S3rs = require("./S3resizer");
var s3resizer = S3rs.rs;

var objCr = require("./objectCreator");
var createObj = objCr.creator;

var fileRs = require("./fileResizer");
var fileResizer = fileRs.rs;

var configs = require("./configs.json");

var mkDir = require("./makeDir");
var makeDir = mkDir.handler;



exports.imageRs = function (event, context) {

    var _path = argv.x || event.path; //argv.x used to be process.argv[2]

    console.log("Path, %s", _path);

    var _dir = argv.y; // used to be process.argv[3]

    console.log(_dir);

    var parts = _getprotocol(_path);

    var imgName = parts.pathname.split("/").pop();

    console.log("imgName: %s", imgName);

    var s3Bucket = parts.hostname;

    var s3Key = imgName;

    var _protocol = parts.protocol;

    console.log(_protocol);

    // RegExp to check for image type
    var imageTypeRegExp = /(?:(jpg)|(png)|(jpeg))$/;

    var sizesConfigs = configs.sizes;

    var obj = createObj(_path);

    // Check if file has a supported image extension
    var imgExt = imageTypeRegExp.exec(s3Key);

    if (imgExt === null) {
        console.error('unable to infer the image type for key %s', s3Key);
        context.done(new Error('unable to infer the image type for key %s' + s3Key));
        return;
    }

    var imageType = imgExt[1] || imgExt[2];
    // Do more stuff here
};

if (!process.env.LAMBDA_TASK_ROOT) {
    exports.imageRs();
}

0 个答案:

没有答案