casperjs を使用して、GUI のテスト スイートを作成しています。メインスクリプトによって呼び出されるモジュールにコードを分割しました。
モジュールに JavaScript オブジェクトを渡すことができないようです。json 構成ファイルを読み込んでオブジェクトに変換し、それをモジュールに渡したいと思います。
testSuite.js (メイン スクリプト):
var casper = require('casper').create();
var test1 = require('../jstests/admin/auth');
var config = {};
casper.start('http://localhost:8080/ipiadmin', function() {});
var fs = require('fs');
configFile = fs.read('./jstests/admin/config.json');
casper.then(function() {
config = JSON.parse(configFile);
});
casper.then(function() {
this.echo("username: " + config.username); // outputs the name correctly
});
test1.runTest(casper, config, "testme");
casper.run(function() {
this.test.done();
this.test.renderResults(true);
});
auth.js (モジュール)
exports.runTest = function auth(casper, config, test) {
/*** Login ***/
casper.waitFor(function() {
this.echo("test: " + test); // "test: testme"
this.echo("username: " + config.username); // "username: undefined"
return true;
});
return true;
}
config.json (構成ファイル)
{
"username": "something",
"password": "secret"
}
上記を実行すると、次のようになります。
Test file: jstests/admin/testSuite.js
username: something
--- Running auth ---
test: testme
username: undefined
おそらくファイルの内容を文字列として渡し、それをモジュール内のオブジェクトに変換できると思いますが、それは私には正しくないようです。
他の誰かがこれを試しましたか?成功しましたか?