2013-02-23 4 views
1

...Ruby가 일부 테스트 만 실행하는 이유는 무엇입니까? 모든 <code>file_sets_controller_test.rb</code> 내 <code>test/functional</code> 디렉토리 나는 두 개의 파일을에서 나는 몇 가지 테스트를 실행하려면이 명령을 사용하고

bundle exec ruby -Itest test/functional/*.rb 

... 위의 명령으로

file_sets_controller_test.rb 
user_sessions_controller_test.rb 

, 테스트 실행되지만 user_sessions_controller_test.rb에있는 사람은 전혀 실행되지 않습니다 - 오류 또는 기타 출력이보고되지 않습니다.

그러나, 나는 ...이와 함께 직접 잘 작동

bundle exec ruby -Itest test/functional/user_sessions_controller_test.rb 

을 아무 문제가 해당 파일을 실행할 수 없습니다.

나는 또 다른 옵션은 rake test functionals를 사용하는 것을 알고,하지만 직접 실행에 비해 매우 느립니다. 여기

ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin11.4.2] 

Rails 3.2.12 


내이 test_helper.rb ...

ENV["RAILS_ENV"] = "test" 
require File.expand_path('../../config/environment', __FILE__) 
require 'rails/test_help' 

require 'turn/autorun' 
Turn.config.ansi = true 

require 'minitest/autorun' 

class ActiveSupport::TestCase 

    fixtures :all 

end 

턴을 제거하고 Minitest 보석은 아무튼입니다 ... 여기

group :development, :test do 

    gem 'ansi' 
    gem 'turn' 

    gem 'minitest' 
    gem 'minitest-matchers' 

end 

내 Gemfile의 일부와 내가 말할 수있는 한 무엇이든 바꿔라.

+0

: 바로 functionals'? –

답변

7

ruby 명령은 첫 번째 인수로 실행하는 루비 파일을 받아 루비 프로그램에 사용할 수있는 추가 인수를합니다. 쉘은 2 개 인자로 글로브 식을 확장하고 ruby로 전달하므로 ruby는 확장의 첫 번째 파일 이름을 실행한다.

추가를 : 나는 당신이 같은 뭔가 원하는 것을 할 수 있다고 생각

... 당신은`레이크 시험에 대해 알고

bundle exec ruby -Itest -e "Dir.glob('test/functional/*_test.rb').each{|f| require File.expand_path(f)}" 
+0

그럼요? (이전 버전의 Rails에서) 테스트를 실행하면 명령에 항상 모든 파일이 ** 하나의 ** 문자열로 저장되며 파일은 문자열 내에 공백으로 구분됩니다. – 244an

+0

죄송합니다. 내 실수예요. Steve & 244 나는 너에게 맥주를 빚지고있다. 스티브, 네 대답을 조금 편집하면 내 downvote를 upvote로 바꿀 수있어. (이 코드는 glob을 가로채는 코드를 가지고 있기 때문에 내 설정에서 작동합니다). 그것은 @joelparkerhenderson – joelparkerhenderson

+0

당신이 제안하는지 편집 나에게 분명하지 않다. 당신은 명확히 할 수 있습니까? –