gpt4 book ai didi

ruby-on-rails - CasperJS + Authlogic (Rails) - 在测试之间维护登录 session

转载 作者:行者123 更新时间:2023-11-28 20:14:06 24 4
gpt4 key购买 nike

我有一个单页应用程序,它有一个 Ruby on Rails 后端,并使用 Authlogic 来促进用户身份验证。

我正在使用 CasperJS 实现功能测试,并且很难让登录 session 在 session 之间以及 thenOpen 命令之间持续存在。

我正在运行以下命令:

casperjs --cookies-file=cookies.txt test ../../../foobar/test/casper/login/test.js

这是我当前代码的示例:

phantom.cookiesEnabled = true;
var x = require('casper').selectXPath

casper.test.begin('Logging in', 2, function suite(test) {
casper.start('http://localhost:3000/login', function() {
console.log("Page loaded");

test.assertExists('form', 'login form is found');
this.fillSelectors('form', {
'#email': "foo@bar.com",
'#password': "foo_bar"
}, false)

this.click('#submit')

casper.thenOpen('http://localhost:3000/my', function() {
test.assertUrlMatch(this.getCurrentUrl(), 'http://localhost:3000/my', "Logged in and maintained login cookie")
})
})

casper.run(function() {
test.done();
});
})

在查看我的开发日志时,我可以看到第一个测试 (casper.start) 成功登录,但在 thenOpen 之后,Authlogic UserSession 不再维护,因此 PhantomJS 被重定向到 localhost:3000/login,如果没有登录用户,应该会发生这种情况。

如何在 thenOpen 之间以及多个测试运行之间使用 CasperJS 维护登录 session ?我可以维护 cookie 以便用户在测试之间保持登录状态吗?

最佳答案

看来这条评论挽救了局面

Looking at the code you have this.click and then doing a casper.thenOpen I would add another step after the form submission and use a casper.waitForXXXX.

It does look like a timing issue

关于ruby-on-rails - CasperJS + Authlogic (Rails) - 在测试之间维护登录 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43984824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com