0

我刚刚从 github 签出了R2D3,现在我想运行测试。我是这个 repo 的新手,不是 JS 测试方面的专家,但我认为正确的方法是在 Web 浏览器中查看tests/index.html,并查看 QUnit 测试是否通过。

但是,当我尝试这样做时,52 个测试中有 41 个直接失败(在 OSX 上的 Chrome、Firefox 和 Safari 中):

在此处输入图像描述

我可以从开发人员工具中看到所有文件都正确加载,因此不仅仅是路径错误。查看代码表明这.append()是失败的。前两个错误位于第 16tests/core/append-tests.jsvar el = svg.append('image')第 20 行var el = svg.append('line')

追根溯源,问题出在r2d3.v2.js这两个函数上:

Raphael.fn.appendChild = function(childNode) {
  var node = this.buildElement(childNode);
  if (node) {
    this.shadowDom.appendChild(childNode);
    node.updateStyle(); //  Apply CSS styles
  }
  return node;
};
Raphael.fn.buildElement = function(childNode) {
  var type = childNode && childNode.nodeName,
      node =  type ? this[type.toLowerCase()]() : null;

  if (node) {
    // Ensure Paper can be referenced from sets
    node.shadowDom = childNode
    node.parentNode = this;
    // Link the shadowDOM node by the Raphael id.
    node.shadowDom.r2d3 = true;
    node.shadowDom.r2d3id = r2d3UID();
    node.paper = this;
    node.tagName = type.toLowerCase();
        node.style = new ElementStyle(node);

    r2d3Elements[node.shadowDom.r2d3id] = node;
  }
  return node;
}

但是,我的调试能力没有进一步。谁能建议可能出了什么问题?

4

1 回答 1

2

看起来您正在使用 Chrome 运行 qunit 测试。R2D3 仅适用于 IE。

于 2013-03-04T14:32:40.610 回答