2

レイアウトにビジュアル比較テストを追加しようとしていますが、テスト環境が正しく構成されていないようです。

私は使用しています:

これは私のテスト JS ファイルです。

var url, screenshotRoot, modules, phantomCSS, page;

url             = 'http://website.local';
screenshotRoot  = 'tests/screenshots';
modules         = '../node_modules';
phantomCSS      = require(modules + '/phantomcss/phantomcss.js');
page            = { width: 1024, height: 768 };

phantomCSS.init({
    screenshotRoot: screenshotRoot,
    failedComparisonsRoot: screenshotRoot + '/failures',
    libraryRoot: modules + '/phantomcss',
});

casper
.start(url)
.then(function() {
    phantomCSS.screenshot("body", "elements-cheatsheet");
})
.then(function() {
    phantomCSS.compareAll();
})
.run(function() {
    phantom.exit(phantomCSS.getExitStatus());
});

casper.viewport(page.width, page.height);

テストを実行casperjs test tests/layout.jsすると、スクリーンショットが作成され、エラーがスローされます。

[PhantomCSS] Can't find Resemble container. Perhaps the library root is mis configured. (../node_modules/phantomcss/ResembleJs/resemblejscontainer.html)

ファイルの場所を確認しましたresemblejscontainer.htmlが、スローされたエラーに記載されている場所に正確にありました。

どこが間違っていますか?

4

4 に答える 4

2

node_modulesand、たとえば、libまたはbower_components?の間で変更できるようにしたいと考えています。

以下も機能するはずです。

modules = 'node_modules';
phantomCSS = require('./../' + modules + '/phantomcss/phantomcss.js');
…
phantomCSS.init({
    …
    libraryRoot: './' + modules + '/phantomcss'
});

(これはPhantomJS Cookbookのレシピに基づいています。)

于 2015-01-15T21:58:17.710 に答える
1

PhantomCSSフォルダー内で「sudo npm install similarjs」を実行したところ、機能しました。おそらく、この回避策は、私のような初心者ユーザーにとって、ルート フォルダーやその他のファイルを変更するよりも簡単です。

于 2016-03-29T19:58:03.843 に答える
1

絶対パスを使用すると問題が解決しました:

modules = '/Users/username/path/node_modules';
于 2014-03-18T10:05:55.047 に答える