4

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

1 回答 1

1

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

有时你只需要问这个问题就可以想出另一件事来尝试,我猜。

于 2014-08-29T14:01:54.430 回答