如何链接casper与任何存储
我需要将testing结果存储在任何存储中。 但不幸的是,它不会与任何db驱动程序任何时候引发exception“CasperError:无法find模块networking”:
var require = patchRequire(require); var redis = require("redis"), client = redis.createClient();
是否有可能将casperjs连接到任何存储(当然除了纯文件)。
这可能对有相同挑战的人有用
我最终得到的解决scheme是使用phantomjs的fs
模块写入一个文件,然后使用child_process
模块执行redis-cli
进程。 我的testing实际上导入了一个通用模块来完成这项工作。 数据库脚本是一组简单的redis命令,一行一行。 有关redis redis-cli --pipe
上的详细信息,请参阅redis批量插入 。
导入的runDBScript
函数var runDBScript = require("dbutils").runDBScript;
exports.runDBScript = function(scriptName) { var cp = require("child_process"); cp.execFile('./dbscripts/exec_db_commands.sh', ["./dbscripts/" + scriptName], {}, function(error, stdout, stderr) { casper.echo("Error: " + error); casper.echo("Stdout: " + stdout); casper.echo("Stderr: " + stderr); }); };
exec_db_commands.sh
是一个非常简单的shell脚本,它调用了redis客户端:
#!/usr/bin/env bash echo "Executing cat $1 | redis-cli --pipe" cat $1 | redis-cli --pipe