正如Stack的许多其他人一样,我正试图将我的CasperJS测试分成多个文件。我花了三天时间阅读文档并在这里抓取答案,似乎找不到任何有用的东西。
我使用--pre, - post和--include命令包含三个脚本(设置,函数,清理)。当我单独运行每个测试文件时,效果很好:
casperjs test tests/tables.js --includes=tests/phantomcss-functions.js --post=tests/phantomcss-cleanup.js --pre=tests/phantomcss-setup.js
... ...产生
Test file: tests/phantomcss-setup.js
Test file: tests/tables.js
Test file: tests/phantomcss-cleanup.js
PASS 1 test executed in 2.416s, 1 passed, 0 failed, 0 dubious, 0 skipped.
当我尝试在整个目录上运行CapserJS时,它并没有完全失败 - 它只是不起作用,从--pre步骤跳转到--post步骤而不通过任何一个目录中的文件:
Test file: tests/phantomcss-setup.js
Test file: tests/phantomcss-cleanup.js
没有通过,没有失败。只是。我完全失去了。调试输出中没有任何内容。我已经包含了下面的脚本输出。如果有人对下一步的尝试有所了解,我很乐意听到它!
phantomcss-functions.js :
var phantomcss = require('../node_modules/phantomcss/phantomcss.js');
function fileNameGetter(root,filename){ ... }
phantomcss.init({
fileNameGetter: fileNameGetter
});
phantomcss-setup.js :
casper.start();
casper.viewport(1024, 768);
casper.test.done();
phantomcss-cleanup.js
casper.then( function now_check_the_screenshots(){
phantomcss.compareAll();
});
casper.then( function end_it(){
casper.test.done();
});
casper.run(function(){
phantom.exit(phantomcss.getExitStatus());
});
tables.js (测试文件示例)
casper.thenOpen( 'http://127.0.0.1:5000/prototypes/page-product-basic.html' );
casper.then(function(){
phantomcss.screenshot('table.attribute-table:first-of-type', 'Table - Attribute');
});
casper.test.done();
答案 0 :(得分:1)
我需要研究原因,但似乎“测试”文件不能与pre / post / include文件存在于同一目录中。一旦我将测试文件隔离到他们自己的“测试”目录中,它就开始正常工作了。
有时你只需要提出问题就可以提出另一件事,我想。