无法在CasperJS中运行测试框架

时间:2015-05-20 14:43:13

标签: javascript casperjs

我正在学习CasperJS以及如何编写单元测试,但我的测试失败了。我尝试了网站上的示例代码,但也失败了!我对如何在CasperJS中使用测试框架感到困惑。

这是我的代码:

var casper = require('casper').create();

casper.test.begin('The title exists', 1, function suite(test) {
    casper.start('http://stackoverflow.com', function() {
        test.assertExists('title');
    }).run(function() {
        test.done();
    });
});

并执行它:

casperjs test script.js

输出:

Test file: test.js                                                              
Fatal: you can't override the preconfigured casper instance in a test environment.
Docs: http://docs.casperjs.org/en/latest/testing.html#test-command-args-and-options
Unsafe JavaScript attempt to access frame with URL about:blank from frame with URL file:///usr/local/lib/node_modules/casperjs/bin/bootstrap.js. Domains, protocols and ports must match.

2 个答案:

答案 0 :(得分:1)

我覆盖预配置的casper实例。如果我删除了第一行,它就没有问题。

卸下:

var casper = require('casper').create();

答案 1 :(得分:1)

我也遇到过这个问题。不幸的是,文档并没有很好地说明不同的组合,这些组合既有效也有失败。

如果您注释掉/删除第一行 (var casper = require('casper').create();)并运行您的命令casperjs test test.js,然后您的脚本将起作用。

OR

如果你离开第一行,但不要包括" test"作为命令行的一部分:casperjs test.js然后您的脚本将起作用。

值得注意的是,第二个选项在控制台中不产生输出。

如果你有这两个选项 - 通过命令行告诉casper你正在使用test函数,试图在脚本中创建一个新实例(当第一行是包括) - 这就是它给出错误的原因。基本上,一个或另一个将创建一个新的casper实例。你不需要创建它两次。