Minitest 6.0.0 주요 변경 사항
Minitest 6.0.0은 대규모 리팩토링과 여러 파괴적 변경 사항을 포함하고 있어, 업그레이드 시 주의 깊은 검토가 필요합니다. 다음은 핵심적인 변경 내용입니다.
제거된 기능 (8가지)
-
호환성 네임스페이스 삭제:
MiniTest및MiniTest::Unit::TestCase호환성 네임스페이스가 제거되었습니다. -
Marshal 사용 제거: 직렬화를 위한 Marshal 사용이 모두 삭제되었습니다.
-
환경 가드 메서드 삭제:
maglev?및rubinius?가드 메서드가 삭제되었습니다. -
Object의minitest/spec기대치 제거:Object에서 모든minitest/spec기대치가 삭제되었으며, 이제_/value/expect를 사용해야 합니다. -
minitest/mock.rb분리:minitest/mock.rb가minitest-mockgem으로 추출되었습니다. -
assert_equal(nil, value)제한:assert_equal(nil, value)는 더 이상 허용되지 않으며, 명시적으로assert_nil을 사용해야 합니다. -
assert_send제거:assert_send가 제거되었으며,assert_predicate또는assert_operator를 사용해야 합니다. -
**`Minitest::Test
class_name 제거**: Minitest::Test
class_name` 메서드가 제거되었습니다.
주요 (호환성 파괴) 변경 사항 (7가지)
- 실행 경로 대규모 리팩토링: Minitest의 실행 경로가 대폭 변경되었습니다.
Minitest.__run->Minitest.run_all_suitesRunnable.run->Runnable.run_suite&Runnable.filter_runnable_methodsRunnable.run_one_method->Runnable.runMinitest.run_one_method가 제거되었습니다.
-
병렬 테스트 환경 변수 변경: 병렬 테스트 수 지정을 위한
ENV["N"]사용이 제거되었으며,MT_CPU를 사용해야 합니다. -
필터 옵션 이름 변경:
options[:filter]가options[:include]로 변경되었고,--include명령줄 옵션이 추가되었습니다. (--name은 향후 제거될 예정입니다.) test_order메서드 이름 변경: `Minitest::Runnable
test_order가 #run_order`로 변경되었습니다.
-
#message동작 변경:#message에 proc이 전달될 경우, 해당 proc이 다른 모든 출력을 재정의하며 더 이상 체인되지 않습니다. -
with_info_handler인자 제거:with_info_handler에서reporter인자가 제거되었습니다. -
플러그인 로딩 옵트인: 플러그인 로딩이 이제 옵트인 방식으로 변경되었습니다.
test_helper에서 플러그인을require하거나,Minitest.load :x를 사용하거나, 이전 자동 로딩 동작을 위해Minitest.load_plugins를 호출해야 합니다.
추가된 기능 (5가지)
-
minitest-sprint통합:minitest-sprint의minitest명령줄 기능이 라인 지원과 함께 추가되었습니다. -
minitest-bisect추가:minitest --bisect또는-b로 실행할 수 있는minitest-bisect가 추가되었습니다. -
minitest-server추가:minitest-server가 추가되었습니다. -
minitest/complete추가: 쉘의 탭 완성(tab-completion)을 돕는minitest/complete가 추가되었습니다. -
path_expander최신 버전 벤더링:path_expander의 최신 버전이 포함되었습니다.
기타 변경 사항 (5가지)
-
Ruby 버전 상향: Ruby 3.2+ 이상으로 버전이 상향되었습니다.
-
오래된 조건문 제거: `CompositeReporter
prerecord 및 리포터 내 Minitest::Result` 주변의 오래된 버전 가드가 제거되었습니다.
-
assert_operator및assert_predicate개선: 두 메서드 모두 이제assert_respond_to를 먼저 호출합니다. -
어설션 재사용 증가: 어설션들이 더 많이 재사용되어 일부 경우 어설션 카운트가 증가할 수 있습니다.