簡體   English   中英

在摩卡單元測試中包括模塊

[英]Including modules in mocha unit test

我正在嘗試將我制作的模塊luaScripts.js包含在摩卡單元測試中。 這是單元測試中包含的內容:

test.js

luaScripts = require("../app/luaScripts.js");

在luaScripts.js中,我包含對配置文件的引用:

luaScripts.js

var fs = require("fs"),
nconf = require("nconf");

nconf.file({ file: "../../config.json" });
var config = nconf.get("dev");

當我嘗試運行單元測試時,它失敗了; 原因是var config是'undefined',因為所包含的luaScripts.js無法從config.json中讀取。看起來mocha正在運行測試的目錄級別比預期的低。 如果我將luaScripts.js中的路徑更改為以下內容:

nconf.file({ file: "../config.json" });

然后測試工作正常。 但是,這將打破使用luaScripts.js的任何其他模塊的路徑。

誰能解釋這種奇怪的行為? 當我運行單元測試時,相對路徑似乎被弄亂了。

謝謝

顯然,測試運行者有時會在自己的目錄中運行測試。 如果要在單元測試中要求使用非全局模塊,而不是使用相對路徑,請使用節點的__dirname global。 如果需要向上移動目錄,可以使用節點的路徑模塊,如下所示:

path.join(__dirname, "../", "myfile.js");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM