【发布时间】:2013-09-06 14:53:46
【问题描述】:
我正在使用 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 文件中运行良好,但在我的 茉莉花文件。我的测试文件如下所示:
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 文件中的 files-property 时, 然后我收到以下消息:
Module name "fs" has not been loaded yet for context: _. Use require([])
使用 requirejs 的数组语法,什么都不会发生。
我猜想在运行 Jasmine 时无法访问 Node.js 功能 使用 Karma 的测试文件。那么当 Karma 在 Node.js 上运行时,为什么无法访问 Nodejs 的“fs”框架?
欢迎任何评论/建议。 谢谢。
【问题讨论】:
标签: node.js jasmine gruntjs karma-runner fs