在CasperJS中拆分测试文件 - 挣扎于它的逻辑

时间:2014-08-29 13:48:29

标签: javascript casperjs phantomcss

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

1 个答案:

答案 0 :(得分:1)

我需要研究原因,但似乎“测试”文件不能与pre / post / include文件存在于同一目录中。一旦我将测试文件隔离到他们自己的“测试”目录中,它就开始正常工作了。

有时你只需要提出问题就可以提出另一件事,我想。