2013-07-24 2 views
10

Rails 3.2에서 Rails 4로 업그레이드 한 후 내 응용 프로그램은 작동하지만 test-unit으로 작성된 테스트는 재앙입니다.레일 4에서 테스트 유닛을 사용할 수 있습니까?

Minitest는 test-unit과 "호환"되는 소문이 있습니다. 그러나 Minitest (지금 번들 된) Minitest를 사용하려고하면 assert * 문 이름과 매개 변수에서 크고 미묘한 다른 것들에 이르기까지 다양한 차이가 있습니다.

내가 대신이

require 'rails/test_help' 

호출 한 결과로

undefined method 'refute_predicate' for class 'ActiveSupport::TestCase' 

을 Minitest를 방지하고 말을 내 Gemfile, 레이크 시험 폭발에서 내 테스트 단위 보석을 유지하려고 시도 할 경우 : (

나는 잠시 동안 검색을 해왔지만 아직 테스트 유닛을 계속 사용하는 방법을 찾지 못했다. 유일한 대안은 (우리에게는 엄청난) 리팩터링 인 것처럼 보일 것이다. 테스트 코드의 80 %와 같은 것이 Minitest의 테스트 유닛과의 비 호환성에 의해 어떤 식 으로든 또는 다른 방식으로 손상 되었기 때문에 테스트 코드가 필요합니다.

아직 읽으신 분은 http://weblog.rubyonrails.org/2013/6/25/Rails-4-0-final/http://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html#upgrading-from-rails-3-2-to-rails-4-0입니다. 실은 이것에 대해 언급하지 않았습니다. 뭔가 빠뜨린 것처럼 느껴집니다.

Minitest를 체계적으로 테스트 유닛과 더욱 호환 가능하게 만들 수 있습니까? 또는 Rails 4에서 테스트 유닛을 계속 사용 하시겠습니까?

+0

어떤 비 호환성을 사용했는지 구체적으로 설명 할 수 있습니까? – blowmage

+0

assert_include 대 assert_includes, assert_not_include 대 assert_not_includes, assert_false 대 반론, assert_true 대 assert. process_with_new_base_test 메소드가 없습니다 (컨트롤러 테스트에서 요청간에 컨트롤러 인스턴스 변수가 번지는 것을 막기 위해 이것을 감쌀 필요가있었습니다). 아직 많은 테스트가 끊어진 상태에서이 시점에서 포기했습니다. –

+0

이것에 대한 원격 페어링이 가능합니까? 나에게 이메일을 보내면 우리는 그것을 설정할 것이다. – blowmage

답변

0

예 레일 지원 테스트 : 단위를 서브 클래 싱해야합니다 :

아마 테스트 그룹에 minitest_tu_shim를 추가하려고합니다. 여기에 대한 지침이 있습니다.

http://guides.rubyonrails.org/testing.html

메소드의 이름을 변경하여 테스트 케이스에 교체 글로벌 검색 &를 사용합니다.

다음
class UserFlowsTest < ActionDispatch::IntegrationTest 

는 컨트롤러 테스트입니다 :

class UsersControllerTest < ActionController::TestCase 

가 자동으로 생성 된 헬퍼 및 프레임 워크 파일을 복사 및 예제를 볼 수 rails new app을 시도 여기

는 통합 테스트입니다.

관련 문제