正如 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();