0

R2D3を github からチェックアウトしたばかりなので、テストを実行したいと思います。私はこのリポジトリを初めて使用し、JS テストの専門家ではありませんが、これを行う正しい方法は、web ブラウザー でtests/index.htmlを見て、QUnit テストがパスするかどうかを確認することだと思います。

ただし、これを実行しようとすると、52 個のテストのうち 41 個がすぐに失敗します (OSX の Chrome、Firefox、および Safari で)。

ここに画像の説明を入力

開発者ツールから、すべてのファイルが正しく読み込まれていることがわかります。パスが間違っているだけではありません。コードを見ると、それ.append()が失敗していることがわかります。最初の 2 つのエラーは:の16行目と20 行目にあります。tests/core/append-tests.jsvar el = svg.append('image')var el = svg.append('line')

問題を のルートにさかのぼるとr2d3.v2.js、問題は次の 2 つの機能にあるようです。

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 に答える