Javascript 从CSV文件加载测试数据

Javascript 从CSV文件加载测试数据,javascript,angularjs,jasmine,karma-runner,browserify,Javascript,Angularjs,Jasmine,Karma Runner,Browserify,我正在为AngularJS应用程序进行单元测试。我有一个CSV的测试用例文件,我想把它放到一个特定的套件中,但我对Jasmine、Karma或Node一般来说还不太熟悉,不知道如何做到这一点。我想我需要安装这个软件包,但一旦安装完成,我就不清楚如何访问它 csvcsv包的说明使用了RequireJS,但我还没有看到将RequireJS集成到seed中的代码示例。在Karma的网站上,我描述了一个与我目前使用的angular seed完全不同的应用程序结构/流程 编辑:感谢marfarma的回答,

我正在为AngularJS应用程序进行单元测试。我有一个CSV的测试用例文件,我想把它放到一个特定的套件中,但我对Jasmine、Karma或Node一般来说还不太熟悉,不知道如何做到这一点。我想我需要安装这个软件包,但一旦安装完成,我就不清楚如何访问它

csv
csv
包的说明使用了RequireJS,但我还没有看到将RequireJS集成到seed中的代码示例。在Karma的网站上,我描述了一个与我目前使用的angular seed完全不同的应用程序结构/流程

编辑:感谢marfarma的回答,我已经安装了
karma browserify
,现在可以在我的rest案例中访问node.js-style
require
。但是,文件系统似乎已损坏:

describe("MyController", function() {
    var fs = require('fs');
    console.log(fs, fs.readFile);
});
将打印:

LOG: Object{exists: undefined}, undefined

这是使用
PhantomJS运行的
-是不是在编写要在浏览器中运行的测试时,我无法访问文件系统?

您链接到的csv包使用node.js样式要求。支持在浏览器中使用它们。以下是一些关于Browserify和Angularjs的教程:

而且,由于您无法从浏览器直接从文件系统读取数据,请将您的csv文件与angular应用程序一起提供,例如:

var request = require('request');
var done = false;

request("http://localhost:8080/data.csv", function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body) // body is the csv data -- parse and save for later use
  }
  done = true;
})

waitsFor(function() {
  return done;
}, "csv data fetch never completed.", 10000);

// use it

describe('it should work',function() {
  ...
});

谢谢你的提示。我已经开始集成karma browserify,但它在我的测试套件中产生了一些问题。这个插件是否要求我
browserify
我的常规应用程序源文件?具体来说,我在每次(模块('app'))之前调用
由于类型错误而失败,因此只有我的非角度UTIL单元测试正在运行。好的,我意识到
模块
是由
browserify
定义的,它的定义隐藏了角度模拟测试代码提供的
模块
功能。我将对
模块的调用替换为
angular.mock.module
,一切正常!谢谢……或者不谢谢。请参阅我的编辑。我想我可能是弄错了。“难道这只是因为我在编写在浏览器中运行的测试时无法访问文件系统吗?”-是的,请转到我的answer@marfarma谢谢我试试那种方法。我假设使用
jasmine node
进行测试可以缓解这一问题,但我更喜欢
karma
,所以我必须咬紧牙关。