使用mocha进行调试,加载全局

时间:2017-09-22 16:02:14

标签: javascript node.js debugging mocha sinon

我的目标是调试我的一个测试。我用Mocha作为基础,而SinonJS用于间谍,存根和嘲笑。由于某些未知原因,我的ajax方法的存根已停止工作。它工作一周前,现在发送请求,存根不跟踪调用。

我在最外面的describe

中有这些行
let sandbox = sinon.sandbox.create();
let ajaxStub = undefined;

然后这个:

beforeEach(function () {
    ajaxStub = sandbox.stub($, 'ajax');
});

afterEach(function () {
    sandbox.restore();

});

无论如何,我的问题不是这个问题,我可能在其他地方做了一些非常愚蠢的事情,而且一些调试可能会解决它。我的问题在于调试本身。

mocha --debug-brk --inspect ./test/mytest.js

这是我在命令行中运行以进行调试会话。

我的问题是运行我目前正在使用Gulp的测试,我将加载所有框架依赖项和所有我的全局变量 - 以这种方式添加的库包括jQuery和{ {1}}

当然,如果我使用该命令行调试我的测试,NodeJS不会在环境中加载所需的文件,并且在第一次引用sinon时我得到一个例外。

我可以创建一个html页面,在其中加载所需的文件和测试并运行测试 - 然后使用浏览器检查器手动调试 - 但这是我想避免的。有没有更自动化的东西?

我不是NodeJS专家,我只是粗略地了解它是什么以及它是如何工作的,所以我非常有信心可能会有一些我错过的东西可以提供帮助:)

我现在正在考虑的是一个批处理脚本来查找所需的文件,但这就是我所拥有的。

另外需要注意的是:代码库真的很老,而且我真的没有权限将现有代码重构为es6模块。

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案:我将创建一个testDebugLoader.js脚本,在其中我将编写我想要调试的测试,以及我需要加载的脚本路径数组。

然后循环遍历数组,加载每个所需文件,并在检索到的文本上调用eval。