如何通过mocha-phatomJS配置资源处理?加载资源文件时出错:

时间:2014-04-23 13:16:32

标签: unit-testing phantomjs mocha mocha-phantomjs

我正在使用mocha-phantomjs运行测试。

在运行单元测试时,我没有运行http服务器,因此我的资源无法通过绝对网址提供(例如: /static/images/face.png ),而我和#39;得到以下输出:

% node_modules/mocha-phantomjs/bin/mocha-phantomjs test/runner/runner.html

  test app.Main
    ✓ should show a command line 


  1 test complete (79 ms)

Error loading resource file:///static/images/face.png (203). Details: Error opening /static/images/face.png: No such file or directory

我的测试:

describe "test app.Main", ->
  beforeEach ->
    @app = App.Main()
    React.renderComponent @app, root[0]

  afterEach -> React.unmountComponentAtNode root[0]

  it "should show a command line", ->
    @cmdForm = root.find("div.header-block").first().find('form')

    expect(@cmdForm.length).to.equal 1
    expect(@cmdForm.find('div.select2-container ul.select2-choices').length).equal 1

测试成功,但同时我有这个丑陋的错误消息。 如何配置phantomJS(或mocha?)忽略加载该资源/不显示此错误消息?

3 个答案:

答案 0 :(得分:2)

您必须停用loadImages默认mocha-phantomjs -s loadImages=false

答案 1 :(得分:0)

@reubano的回答即设置loadImages=false可以防止幻影加载图像,因此@ robert-zaremba正在寻找。但是,如果您需要单元测试代码如何对丢失的文件做出反应,则需要真正加载文件。在这种情况下,错误消息会使您烦恼,因为测试丢失的文件是测试套件的一部分。

幸运的是mocha-phantomjs有一个标记--ignore-resource-errors。这是你的救世主。文件仍在加载,但烦人的错误消失了。

如果直接使用phantomjs,解决方案是覆盖page.onResourceError described here

答案 2 :(得分:-1)

您可以使用window.onError(function() {...处理程序捕获(并吃掉)这些错误。