[ruby-on-rails] Rails 테스트 스위트에서 단일 테스트를 실행하는 방법은 무엇입니까?

Rails 테스트 스위트에서 단일 테스트를 어떻게 실행할 수 있습니까?

rake test ANYTHING 도움이되지 않는 것 같습니다.



답변

참고 : 이 테스트는를 통해 실행되지 않습니다 rake. 따라서 가지고있는 코드는 Rakefile실행되지 않습니다.

단일 테스트를 실행하려면 rails 프로젝트의 기본 디렉토리에서 다음 명령을 사용하십시오.

ruby -I test test/unit/my_model_test.rb -n test_name

지정된 파일의 MyModelTest 클래스에 정의 된 “name”이라는 단일 테스트를 실행합니다. test_name은 테스트 이름 앞에 “test”라는 단어를 붙인 다음 밑줄로 단어를 구분하여 구성됩니다. 예를 들면 다음과 같습니다.

class MyModelTest < ActiveSupport::TestCase

  test "valid with good attributes" do
    # do whatever you do
  end

  test "invalid with bad attributes" do
    # do whatever you do
  end
end

다음을 통해 두 가지 테스트를 모두 실행할 수 있습니다.

ruby -I test test/unit/my_model_test.rb

그리고 두 번째 테스트를 통해

ruby -I test test/unit/my_model_test.rb -n test_invalid_with_bad_attributes


답변

테스트 파일을 실행하십시오 .

rake test TEST=tests/functional/accounts_test.rb

테스트 파일에서 단일 테스트 를 실행하십시오 .

rake test TEST=tests/functional/accounts_test.rb TESTOPTS="-n /paid accounts/"

(@Puhlze의 의견에서)


답변

레일 5의 경우 :

rails test test/models/my_model.rb


답변

@James 덕분에 답은 다음과 같습니다.

rails test test/models/my_model.rb:22

22는 주어진 테스트의 줄 번호라고 가정합니다. 레일즈 도움에 따르면 :

 $ rails test --help

파일 이름에 줄 번호를 추가하여 단일 테스트를 실행할 수 있습니다.

    bin/rails test test/models/user_test.rb:27

또한 테스트가 ActionDispatch :: IntegrationTest에서 상속되어야합니다.

class NexApiTest < ActionDispatch::IntegrationTest
.
.
.


답변

레일 5에서

이 방법으로 단일 테스트 파일을 실행했습니다 (모든 파일을 하나의 파일로)

rails test -n /TopicsControllerTest/ -v

이쪽을 봐
https://stackoverflow.com/a/41183694/3626659


답변

실제 Rails 제품군에서 단일 테스트를 실행하려면

bundle exec ruby -I"railties/test" actionpack/test/template/form_options_helper_test.rb


답변

그것은 내 바보 같은 자정 문제였습니다. Rails는 실행중인 명령을 친절하게 인쇄합니다 rake test. 나머지는 잘라 붙여 넣기 운동입니다.

~/projects/rails/actionpack (my2.3.4)$ ruby -I"lib:test" "/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader.rb" "test/controller/base_test.rb"