3

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

在运行单元测试时,我没有运行 http 服务器,所以我的资源不能通过绝对 url 获得(例如:/static/images/face.png),我得到以下输出:

% 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?)以忽略加载该资源/不显示此错误消息?

4

3 回答 3

2

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

于 2014-05-10T13:27:12.607 回答
0

@reubano ie 设置的答案完全loadImages=false阻止了 phantomjs 加载图像,因此这就是 @robert-zaremba 所寻找的。但是,如果您需要对代码如何对丢失的文件做出反应进行单元测试,那么您希望文件真正被加载。在这种情况下,错误消息会让您烦恼,因为测试丢失的文件是您的测试套件的一部分。

幸运的是mocha-phantomjs有一个 flag --ignore-resource-errors。它是你的救星。文件仍在加载,但恼人的错误消失了。

如果您直接使用 phantomjs,一个解决方案是覆盖page.onResourceError 此处描述的

于 2016-03-28T11:08:50.113 回答
-1

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

于 2014-05-05T18:55:34.207 回答