私は Soda.js、mocha、selenium RC を使用しています。私はテストをスピードアップしようとしていますが、私が考えていた方法の 1 つは、テストごとに新しいセッションを開始しているためです (つまり、新しいブラウザーを閉じたり開いたりしてサイトにログインすることを実行しています)。
さまざまなフォーラムやメッセージ ボードで、セッションを他の言語で再利用するという不完全な投稿を数多く見てきましたが、私のテストはすべて Javascript です。
テストを開始したら、以前のブラウザー/セッションを再利用する方法を知っている人はいますか?テストごとに新しいセッションを開始する必要はありません。
ソーダのテスト ランナーは次のようになります。
var soda = require('soda'),
util = require('util'),
//config object - values injected by TeamCity
config = {
host: process.env['SELENIUM_HOST'] || 'localhost',
port: process.env['SELENIUM_PORT'] || 4444,
url: process.env['SELENIUM_SITE'] || 'http://google.com',
browser: process.env['SELENIUM_BROWSER'] || 'firefox'
};
describe("TEST_SITE", function(){
beforeEach(
function(done){
browser = soda.createOnPointClient(config);
// Log commands as they are fired
browser.on('command', function(cmd, args){
console.log(' \x1b[33m%s\x1b[0m: %s', cmd, args.join(', '));
});
//establish the session
browser.session(function(err){
done(err);
});
}
);
afterEach(function(done){
browser.testComplete(function(err) {
console.log('done');
if(err) throw err;
done();
});
});
describe("Areas",function(){
var tests = require('./areas');
for(var test in tests){
if(tests.hasOwnProperty(test)){
test = tests[test];
if(typeof( test ) == 'function')
test();
else if (util.isArray(test)) {
for(var i=0, l=test.length;i<l;i++){
if(typeof( test[i] ) == 'function')
test[i]();
}
}
}
}
});
});