如何将casper与任何存储链接

How to link casper with any storage

本文关键字:任何 存储 链接 casper      更新时间:2023-09-26

我需要将测试结果存储在任何存储中。但不幸的是,每当它引发异常"CasperError:找不到模块网"时,它都无法与任何数据库驱动程序一起工作:

var require = patchRequire(require);
var redis = require("redis"),
    client = redis.createClient();

是否可以将casperjs连接到任何存储(当然,普通文件除外)。

这可能对具有相同挑战的人有用

我最终得到的解决方案是使用phantomjs的fs模块写入一个文件,然后使用child_process模块执行redis-cli进程。我的测试实际上导入了一个通用模块来完成这项工作。数据库脚本是一组简单的redis命令,一行接一行。有关redis-cli --pipe的详细信息,请参见redis批量插入。

var runDBScript = require("dbutils").runDBScript; 导入的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
相关文章: