MiniTest에서 단일 테스트를 실행할 수 있습니까?
다음을 사용하여 모든 테스트를 단일 파일로 실행할 수 있습니다.
rake test TEST=path/to/test_file.rb
그러나 해당 파일에서 테스트를 하나만 실행하려면 어떻게 해야 합니까?
다음과 유사한 기능을 찾고 있습니다.
rspec path/to/test_file.rb -l 25
명령은 다음과 같아야 합니다.
% rake test TEST=test/test_foobar.rb TESTOPTS="--name=test_foobar1 -v"
시도해 보셨습니까?
ruby path/to/test_file.rb --name test_method_name
필요하지 .ruby -Itest test/lib/test.rb --name /some_test/
출처: http://blog.arvidandersson.se/2012/03/28/minimalicous-testing-in-ruby-1-9
이것은 저를 괴롭히는 것들 중 하나입니다.string name definition
시험으로
다음이 있을 때:
def test_my_test
end
테스트 이름이 어떻게 지정되는지 항상 알고 있으므로 다음과 같이 실행할 수 있습니다.
ruby my_test -n test_my_test
하지만 다음과 같은 것이 있을 때:
it "my test" do
end
당신은 이 테스트가 실제로 내부적으로 어떻게 명명되었는지 결코 확신하지 못하므로 당신은 그것을 사용할 수 없습니다.-n
직접적으로 선택할 수 있습니다.
내부적으로 이 테스트의 이름을 지정하는 방법을 알아보려면 전체 파일을 실행하여 로그를 확인하는 방법만 선택할 수 있습니다.
해결 방법은 테스트 이름에 다음과 같이 매우 고유한 것을 (임시적으로) 추가하는 것입니다.
it "my test xxx" do
end
그런 다음 다음 '-n' 매개 변수의 ReGEx 버전을 사용합니다.
ruby my_test.rb -n /xxx/
rspec path/to/file.rb -l 25와 유사한 기능을 찾고 있습니다.
닉 Quaranto의 "m" 보석으로 당신은 다음과 같이 말할 수 있습니다.
m spec/my_spec.rb:25
MiniTest with Rails 5+를 사용하는 경우 단일 파일에서 모든 테스트를 실행하는 가장 좋은 방법은 다음과 같습니다.
bin/rails test path/to/test_file.rb
단일 테스트의 경우(예: 25번 라인):
bin/rails test path/to/test_file.rb:25
http://guides.rubyonrails.org/testing.html#the-rails-test-runner 을 참조하십시오.
이를 통해 단일 파일을 실행할 수 있습니다.
rake test TEST=test/path/to/file.rb
저도 사용했습니다.
ruby -I"lib:test" test/path/to/file.rb
더 잘 보이기 위해.
합격할 수 있습니다--name
이름 또는 이름 내 번호로 테스트 실행:
-n, --name PATTERN Filter run on /regexp/ or string.
예:
$ ruby spec/stories/foo_spec.rb --name 3
FAIL (0:00:00.022) test_0003_has foo
Expected: "foo"
Actual: nil
이 플래그는 Minitest의 README에 문서화되어 있습니다.
두 가지 방법이 있습니다.
- '수동으로' 테스트를 실행합니다(Andrew Grimm의 답변 참조).
- 해
Rake::TestTask
다른 테스트 로더를 사용합니다.
Rake::TestTask
( 0에서) 이론적으로 을 (레이크 0.8.7로) 할 수 에서) 이론적으로 추가 옵션을 전달할 수 있습니다.MiniTest::Unit
"TESTOPTS=blah-blah"
명령줄 옵션(예:
레이크 테스트 TEST=test/test_foobar.rb TESTOPTS="--name test_foobar1-v"
인 로제션, 은옵실--name
레이크 내부로 인해 (테스트 이름 필터)가 작동하지 않습니다.Rake 원숭이 패치를 Rake 파일에 작은 원숭이 패치를 작성해야 .
# overriding the default rake tests loader
class Rake::TestTask
def rake_loader
'test/my-minitest-loader.rb'
end
end
# our usual test terget
Rake::TestTask.new {|i|
i.test_files = FileList['test/test_*.rb']
i.verbose = true
}
.test/my-minitest-loader.rb
:
ARGV.each { |f|
break if f =~ /^-/
load f
}
Minitest에 대해 가능한 모든 옵션을 인쇄하려면 다음과 같이 입력합니다.
ruby -rminitest/companyun -e ' -- --help
사용합니다ruby /path/to/test -n /distinguishable word/
편집:-n
는 의줄입니다말의 입니다.--name
.distinguishable word
테스트 설명에 입력한 문자열이 될 수 있습니다. 다른 테스트 설명에는 없는 임의의 단어를 주로 사용합니다.
저는 Rails Version 4.2.11.3과 Ruby Version 2.4.7p357에 있습니다.
밑에 하나는 저한테 효과가 있었어요.
ruby -Itest <relative_minitest_file_path> --name /<test_name>/
최소 테스트와 함께 보석 돌리기를 사용하는 경우 반드시 사용하십시오.Turn.config.pattern
Turn Minitest runner가 ARG의 --name 옵션을 존중하지 않기 때문에 옵션입니다.
다음과 유사한 기능을 찾고 있습니다.
rspec 경로/to/test_file.dll - l 25
바로 그런 역할을 하는 보석이 있습니다.minitest-line
.
gem install minitest-line
ruby test/my_file -l 5
https://github.com/judofyr/minitest-line#minitest-line 에서
다음이 작동합니다.
def test_abc
end
test "hello world"
end
실행할 수 있습니다.
bundle exec ruby -I test path/to/test -n test_abc
bundle exec ruby -I test path/to/test -n test_hello_word
gem minitest-focus를 설치하고 아래와 같이 focus on test/spec 키워드를 사용하여 특정 테스트만 실행합니다.
focus
def test
end
focus
it "test" do
end
이렇게 하면 명령줄 인수를 전달할 필요가 없습니다.
언급URL : https://stackoverflow.com/questions/5285711/is-it-possible-to-run-a-single-test-in-minitest
'prosource' 카테고리의 다른 글
오라클 11g 시스템에서 사용 가능한 디렉터리 개체를 찾는 방법은 무엇입니까? (0) | 2023.07.02 |
---|---|
클래스가 주어지면 인스턴스에 메서드(Ruby)가 있는지 확인합니다. (0) | 2023.07.02 |
수정할 열이 ID 열이 아닙니다. (0) | 2023.06.27 |
워드프레스 스테이징 환경 (0) | 2023.06.27 |
C/C++(GCC/G++)을 사용하는 Linux의 소켓 프로그래밍에서 파일 보내기 및 받기 (0) | 2023.06.27 |