2013-04-26 3 views
0

스핑크스 검색 테스트를 위해 테스트를 작성하려고합니다. 사용자가 api에 일부 매개 변수를 전달하고 params shpinx를 기반으로 검색을 수행해야합니다.작성된 순서대로 테스트를 실행하는 방법?

내가 test_helper.rb에서 테스트

3 다음 한 나는 모든

require 'factory_girl' 
    require 'thinking_sphinx/test' 
    ThinkingSphinx::Test.init 
    ......... 
    class ActiveSupport::TestCase 

    self.use_transactional_fixtures = false 
    self.use_instantiated_fixtures = false 
    fixtures :all 

그리고 내 테스트를 설정 한

내 테스트 순서가 아닌 실행 이유를 잘 모릅니다
test "should 1st test" do 
    ThinkingSphinx::Test.start 
    # uthenticatoin and creating records in databese with Factory Girl 
    ThinkingSphinx::Test.index 

    get "some/path", {params}, @headers 

    assert_response :success 
end 

test "should 2nd test" do 
    # uthenticatoin and creating records in databese with Factory Girl 
    ThinkingSphinx::Test.index 

    get "some/path", {params}, @headers 

    assert_response :success 
    # other assertions 
end 

test "should 3rd test" do 
    # uthenticatoin and creating records in databese with Factory Girl 
    ThinkingSphinx::Test.index 

    get "some/path", {params}, @headers 

    assert_response :success 
    # other assertions 
    ThinkingSphinx::Test.stop 
end 

그들이 쓰여졌지 만 2nd, 3rd, 1st thay가 쓰여지는 순서대로 테스트를 수행 할 수 있습니까? 기본 Rails Test :: Unit을 사용하고 있습니다. 시험 세부 사항 때문에 제게 큰 문제가됩니다. 덕분에 .

답변

1

테스트가 중요한 순서로 작성되어서는 안됩니다. 나는 왜 당신이 명령을 원하는지 알기 때문에 그것을 다루는 방법이있다. 이 시도 : 하기 전에 각 테스트 ThinkingSphinx::Test가 시작되고 테스트 후 중지하도록이 그것을 만드는

setup do 
    ThinkingSphinx::Test.start 
end 

# Your tests 

teardown do 
    ThinkingSphinx::Test.stop 
end 

합니다. 이것은 이상적인 설정 방법이므로 테스트가 어떤 순서로 실행되는지는 중요하지 않습니다.

그러나 ThinkingSphinx::Test.start이 긴 프로세스 인 경우 각 테스트마다 실행하지 않을 수 있습니다. TestUnit이 전체 제품군 또는 테스트 세트 이전에 설치 프로그램을 실행할 수있는 능력을 제공하는지는 모르겠지만 RSpec에서는이를 수행 할 수있어 더 나은 결과를 얻을 수 있습니다.

관련 문제