6

OK, j'écris des tests de performance et j'ai du mal à faire durer ma session comme dans les tests d'intégration. Si je comprends bien, PerformanceTest est un enfant d'IntegrationTest et tous les tests d'intégration devraient fonctionner avec le test de performance. Toutefois, lorsque je prends un test d'intégration et que je le copie sur les performances, modifiez ActionController :: IntegrationTest en ActionController :: PerformanceTest, puis exécutez le test, il échoue. J'utilise Authlogic et je n'ai pas eu de problème avec les sessions de test d'intégration. Avec les tests de performance, il semble que la session soit créée correctement, mais quand je visite la page "/ reports" (qui est une page protégée), elle me redirige vers la page de connexion comme s'il n'y avait pas de session utilisateur.Pourquoi ma session expire-t-elle avec PerformanceTest et non avec IntegrationTest?

require 'performance_test_help' 

class SimpleTest < ActionController::PerformanceTest 
    setup :activate_authlogic 

    test "login" do 
    assert user_session = UserSession.create!(User.find_by_login("admin")) 

    get "/reports" 
    assert_response :success 
    end 
end 

Que se passe-t-il ici? J'ai essayé plusieurs façons d'obtenir une session utilisateur (créer, publier, etc.) et rien ne semble fonctionner. C'est la première fois que j'ai écrit des tests de performance, donc je fais probablement quelque chose de stupide ...

BTW: Je cours Ruby 1.8.7, Rails 2.2.2 sur Debian Squeeze.

+0

J'ai le même problème, et j'apprécierais certainement les pointeurs ... Avez-vous résolu le problème par vous-même? –

+0

Appelez-moi un AOLer. Moi aussi! Un correctif? – kwerle

Répondre

1

Vous devez configurer vos tests de performance comme vos tests d'intégration.

Essayez de vous connecter en utilisant après:

post "user_session", :user_session => {:login => "user", :password => "password"} 
+0

Oui, vous devez publier pour vous connecter afin de vous connecter, car uses_session dans le test devient une variable locale et non une variable d'application. –

0

ne sais pas ce qui est dans votre configuration il, mais vous manque require 'test_helper' aussi bien. Si cette méthode est présente ou dans une aide de test Authlogic, vous devrez peut-être vous assurer qu'elle est incluse.