Exercism에서 Ruby 연습 문제를 테스트하는 방법을 배워요
다음 명령으로 테스트를 실행해요:
$ ruby hamming_test.rb
첫 번째 테스트만 실행되고, 나머지 테스트는 모두 skip 메서드를 사용해 보류 상태가 돼요. 테스트를 하나씩 통과할 때마다 다음 skip을 삭제하거나 주석 처리해요.
skip 메서드는 테스트 스위트에 특정 테스트를 실행하지 말라고 지시해요. 아직 구현하지 않은 기능의 테스트는 실행하지 않고, 지금 작업 중인 부분에 집중하고 싶을 때 흔히 사용해요.
테스트 실행 요약에는 건너뛴 테스트의 개수가 표시돼요. 연습 문제를 완료하기 전에 모든 건너뛰기를 해제해야 해요.
색상을 원한다면 다음 명령으로 테스트를 실행해요:
$ ruby hamming_test.rb -p
테스트 이름을 보고 싶다면 다음 명령으로 테스트를 실행해요:
$ ruby hamming_tests.rb -v
테스트를 하나만 실행하고 싶다면, 정규 표현식 스타일 매칭으로 하나 또는 그룹을 지정할 수 있어요.
$ ruby hamming_tests.rb -n /empty/
옵션들을 조합할 수도 있어요.
원하는 개별 테스트나 테스트 그룹을 선택해 실행할 수 있게 되었으니, 이제 모든 건너뛰기를 해제하고 싶을 수도 있어요.
Ruby에서는 메서드를 재정의할 수 있다는 점을 이용해서, 다음과 같은 한 줄의 코드를 추가한다면
def skip ; end
Hamming 테스트 파일에 이렇게요
class HammingTest < Minitest::Test
def skip ; end
def test_identical_strands
그러면 모든 건너뛰기가 그대로 평가되긴 하지만, 테스트는 실행되게 해줘요.
물론 매번 모든 파일을 수정하는 건 번거로울 수 있어요. 그래서 우리가 연습 문제를 개발할 때 했던 것처럼, skip 정의를 담은 파일을 하나 만들고 필요할 때 라이브러리로 require 할 수 있어요.
우리는 "도우미" 파일들을 담아 둘 lib 폴더를 만들었는데, 그 내용은 이렇게 생겼어요:
require 'minitest/autorun'
# You can use this to disable all skips in the current exercise by issuing the
# following command:
# ruby -I../lib -rdisable_skip <filename_test.rb>
module Minitest
class Test
def skip(_msg='', _bt=caller)
end
end
end
사용 방법에 대한 설명은 그 파일 목록에 주석으로 달려 있고, 파일 목록은 완전한 상태예요.