我正在学习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.
答案 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实例。你不需要创建它两次。