gpt4 book ai didi

node.js - Jasmine 测试文件中的 Grunt-Karma : Use Node. js fs-framework

转载 作者:搜寻专家 更新时间:2023-10-31 23:30:56 27 4
gpt4 key购买 nike

我正在使用 Jasmine 框架编写单元测试。

我使用 Grunt 和 Karma 来运行 Jasmine 测试文件。

我只是想在我的本地文件系统上加载文件的内容(例如 example.xml)。

我以为我可以做到:

var fs = require('fs');
var fileContent = fs.readFileSync("test/resources/example.xml").toString();
console.log(fileContent);

这在我的 Gruntfile.js 甚至在我的 karma.conf.js 文件中运行良好,但在我的 Jasmine 文件。我的测试文件看起来像这样:

describe('Some tests', function() {
it('load xml file', function() {
var fs = require("fs");
fileContent = fs.readFileSync("test/resources/example.xml").toString();
console.log(fileContent);
});
});

我得到的第一个错误是:

'ReferenceError: require is not defined'.

不知道为什么我不能在这里使用 RequireJS,因为我可以使用它在 Gruntfiel.js 甚至在 karma.conf.js 中?!?!?

好的,但是当手动将 require.js 添加到 karma.conf.js 文件中的文件属性时,然后我收到以下消息:

 Module name "fs" has not been loaded yet for context: _. Use require([]) 

使用 requirejs 的数组语法,什么也不会发生。

我猜想在运行时无法访问 Jasmine 中的 Node.js 功能带有 Karma 的测试文件。那么当 Karma 在 Node.js 上运行时,为什么无法访问 Nodejs 的'fs'-framework?

欢迎任何意见/建议。谢谢。

最佳答案

您的测试不起作用,因为 karma - 是客户端 JavaScript(在浏览器中运行的 javascript)的测试运行器,但您想用它测试 node.js 代码(在服务器部分运行)。所以 karma 只是不能运行服务器端测试。您需要不同的测试运行器,例如查看 jasmine-node .

关于node.js - Jasmine 测试文件中的 Grunt-Karma : Use Node. js fs-framework,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18660670/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com