在Karma / Mocha中加载Json Fixture

时间:2016-02-29 15:55:05

标签: javascript json unit-testing fixtures karma-mocha

我正在使用Karma和Mocha以及karma-fixture。如果我在运行测试时进入调试,我可以看到文件已加载到服务器中。如果我更改了配置included:true,那么我可以看到它已加载到控制台上。扩展名更改为.js(而不是.json),如果我在文件中查看源代码(在浏览器窗口中),json将包含在一个函数中 - 所以看起来好像所有事情都发生在{{3}中所述}。但是,我收到一个错误,无法找到该文件。我在下面列出了相关的配置和错误。

更新1

我能够使用require加载夹具 - 我正在使用它来管理和加载依赖项。数据分配给这样的数组:__json__['test/fixtures/json-data/querybrowser']。我仍然有兴趣知道为什么我不能使用fixture.load()函数。我觉得我在这里错过了一个简单的细节。

谢谢!

配置:

该文件位于此处,从项目的根目录进行修补:\test\fixtures\json-data\querybrowser.json

 files: [{pattern: 'test/fixtures/{,*/}*', watched: true, included: false, served: true}]

TEST规范

 fixture.setBase('base/test/fixtures/json-data');
 querybrowser_json = fixture.load('querybrowser.json');

错误

 Chrome 48.0.2564 (Windows 7 0.0.0) Query Browser Function Tests "before all" hook FAILED
 ReferenceError: Cannot find fixture 'base/test/fixtures/json-data/querybrowser.js' 
 at Fixture._throwNoFixture (////node_modules/karma-fixture/lib/fixture.js:141:13)

1 个答案:

答案 0 :(得分:1)

有你:

  1. 确保您的karma配置中包含files数组和preprocessors数组中的JSON文件?
  2. 确保transformPath根据https://github.com/billtrik/karma-fixture/issues/10定义jsonFixturesPreprocessor属性?
  3. 我和你有同样的问题,但做这些事就是为我修好了。