6

좋아, 성능 테스트를 쓰고 있는데 내 세션이 통합 테스트에서와 같이 지속되도록하는 데 문제가 있습니다. 내가 알고 있듯이 PerformanceTest는 IntegrationTest의 자식이며 모든 통합 테스트는 성능 테스트와 함께 작동해야합니다. 그러나 통합 테스트를 수행하여 성능에 복사하고 ActionController :: IntegrationTest를 ActionController :: PerformanceTest로 변경 한 다음 테스트를 실행하면 실패합니다.IntegrationTest가 아닌 PerformanceTest를 사용할 때 내 세션이 만료되는 이유는 무엇입니까?

Authlogic을 사용 중이며 통합 테스트 세션에 문제가 없었습니다. 성능 테스트에서는 세션이 제대로 생성 된 것처럼 보이지만 "/ reports"페이지 (보호 된 페이지)를 방문하면 사용자 세션이없는 것처럼 로그인 페이지로 리디렉션됩니다.

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 

여기서는 어떻게됩니까? 여러 가지 방법으로 사용자 세션 (만들기, 게시 등)을 시도했지만 아무것도 작동하지 않는 것 같습니다. 성능 테스트 결과를 작성한 것은 이번이 처음입니다 ...

BTW : Debian Squeeze에서 Ruby 1.8.7, Rails 2.2.2를 실행하고 있습니다.

+0

나는 똑같은 문제를 겪고 있으며, 분명히 어떤 포인터에 감사 할 것입니다 ... 당신 스스로 문제를 해결 했습니까? –

+0

전화 AOLer. 나도! 어떤 문제가 있습니까? – kwerle

답변

1

통합 테스트와 같은 성능 테스트를 설정해야합니다.

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

예, 테스트의 uses_session이 응용 프로그램 범위 변수가 아닌 로컬 변수가되기 때문에 로그인하려면 로그인해야합니다. –

0

가 확실하지 거기 설정에서 무엇을,하지만 당신은뿐만 아니라 require 'test_helper' 누락 :

포스트 사용하여 로그인을 시도합니다. 이 메서드가 Authlogic 테스트 도우미에 있으면 포함되어 있는지 확인해야 할 수 있습니다.

관련 문제