R2D3を github からチェックアウトしたばかりなので、テストを実行したいと思います。私はこのリポジトリを初めて使用し、JS テストの専門家ではありませんが、これを行う正しい方法は、web ブラウザー でtests/index.htmlを見て、QUnit テストがパスするかどうかを確認することだと思います。
ただし、これを実行しようとすると、52 個のテストのうち 41 個がすぐに失敗します (OSX の Chrome、Firefox、および Safari で)。
開発者ツールから、すべてのファイルが正しく読み込まれていることがわかります。パスが間違っているだけではありません。コードを見ると、それ.append()
が失敗していることがわかります。最初の 2 つのエラーは:の16行目と20 行目にあります。tests/core/append-tests.js
var 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;
}
ただし、私のデバッグ能力はそれ以上のものではありません。誰が何が間違っているのかを提案できますか?