Spring 및: Rake 및 Binstubs 통합
묘사
여보세요,저는vimrails를 좋아합니다. 저는 그것을 사용한 지 오래되었습니다. 저는vim에서 특정 파일을 실행할 수 있는 테스트를 정말 좋아합니다./단지 하나의 단독 테스트일 뿐입니다.나도 이제 막 Spring을 사용하기 시작했는데, 나는 한 가지 문제에 부딪혔다. 부분은 #253에서 보았지만, 나의 테스트는 여전히 매우 느리다.
나의 특정 응용 프로그램에서, 나는 선스팟을 사용하는데, 이것은 나의 테스트 속도가 비교적 느린 것과 관련이 있을 수 있다.
어쨌든.명령줄에서 실행하는 경우
time bin/rspec spec/helpers/contests_helper_spec.rb
그것은 용수철을 사용하여 3.047초의 속도로 방출한다.만약 내가 Vim에서 같은 조수를 열고 실행한다면Rake는 다음 명령을 실행하며 여기서 시간을 계산합니다.
time bin/rake spec SPEC=spec/helpers/contests_helper_spec.rb
결과는 12.162초.분명히 하나는/bin/rake를 사용하고, 다른 하나는 내가/bin/rspec를 사용하고 있을 뿐이다.너는 나에게 몇 가지 건의를 할 수 있는데, 내가 어디로 가서 이 문제를 해결할 수 있니?답은 아마도 "이것은 단지 당신의 응용 프로그램의 구조일 뿐입니다. 죄송합니다!"물어볼 것 같아서요.
감사합니다,
Patrick
토론 #1
은 나를 놀라게 하지 않았다. 라크도db:test:prepare를 했다.레나를 해보자.더 공평한 비교.
2014년 4월 2일, 수요일, 패트릭 데이비드[email protected]쓰기:
Hi,
Love vim-rails, I've been using it for quite a while and really like being able to run the tests for a specific file / just an individual test from within vim. I've also just started to use Spring and I've run into an issue - partly looked at in #253 https://github.com/tpope/vim-rails/issues/253but I'm still getting slow tests.
In my particular app I'm using sunspot which may have something to do with why I'm having slower tests.
Anyway.. if I run from the command line: time bin/rspec spec/helpers/contests_helper_spec.rb
It uses Spring and comes out at 3.047 seconds.
If I open up the same helper in Vim and run .Rake (just the one test in there at the moment) it runs the following command which I time here:
time bin/rake spec SPEC=spec/helpers/contests_helper_spec.rb
come out as 12.162 seconds
obviously one is using /bin/rake and the other is just me using /bin/rspec . Can you give any pointers as to where I can go to fix this? The answer may be "it's just the way your app is structured, sorry!" but I thought I'd ask.
Thanks, Patrick
Reply to this email directly or view it on GitHubhttps://github.com/tpope/vim-rails/issues/316 .
토론 #2
여기에 취할 수 있는 행동이 없다고 가정하자.토론 #셋
마지막 테스트를 실행할 수 있다면 다행이다. 예를 들어 :Rake -
토론 #4
에서 디스패치에 비슷한 내용을 추가하는 것을 볼 수 있다.윌.그나저나 Rails4.1은 훌륭한 대수리를 하여 도태시켰다
db:test:prepare
. 그래서 나는 bin/rake
와 bin/rspec
사이의 대부분 성능 차이가 사라질 것이라고 예상한다.토론 #5
테스트를 실시했는데 말씀하신 대로 Rails 4.1에서 두 제품의 성능은 매우 비슷합니다.어쨌든, 오래된 Rails 버전을 사용하는 프로젝트에 있어서는 좋은 일일 것이다.디스패치에서 기능 요청을 열 것입니다.윌.고맙습니다.
토론 #6
Rrunner
는 여전히 Rake
보다 느리다.a function to measure command execution time in vim를 사용하여 통합 테스트를 실시한 결과 7
와 Rrunner
의 결과를 얻었습니다.한편, 9
출력은 Rake
출력보다 훨씬 좋아 보인다.예를 들면 다음과 같습니다.지원
Rake
:|| Run options: include {:locations=>{"./spec/models/accountancy/account_spec.rb"=>[61]}}
|| F
||
|| Failures:
||
spec/models/accountancy/account_spec.rb|61 error| Failure/Error: expect(account.errors.added?(:code, :account_has_not_lower_levels)).to eq(true) expected: true got: false (compared using ==)
||
|| Finished in 0.14439 seconds (files took 2.56 seconds to load)
|| 1 example, 1 failure
||
|| Failed examples:
||
|| rspec ./spec/models/accountancy/account_spec.rb:53 # Accountancy::Account lower levels validation doesn't add an error if there is an account for each lower level and the same owner
지원 Rrunner
:|| Run options: include {:locations=>{"./spec/models/accountancy/account_spec.rb"=>[61]}}
|| F
||
|| Failures:
||
|| 1) Accountancy::Account lower levels validation doesn't add an error if there is an account for each lower level and the same owner
|| Failure/Error: expect(account.errors.added?(:code, :account_has_not_lower_levels)).to eq(true)
||
|| expected: true
|| got: false
||
|| (compared using ==)
spec/models/accountancy/account_spec.rb|61| in `block (3 levels) in <top (required)>'
||
|| Finished in 0.13594 seconds (files took 2.75 seconds to load)
|| 1 example, 1 failure
||
|| Failed examples:
||
|| rspec ./spec/models/accountancy/account_spec.rb:53 # Accountancy::Account lower levels validation doesn't add an error if there is an account for each lower level and the same owner
가독성과 속도 면에서 모두 이 점을 할 수 있다면 다행이다. Rrunner
Rake
의 출력은 토론 #7
, FWIW 등 명령의 응답에 더욱 유용하다.:Rrunner
이건 진짜야.그러나 나는 :cc
에서 아름다운 풍경을 보는 것을 더 좋아한다. 왜냐하면 나는 보통 다음과 같은 일을 하기 때문이다.1. 테스트를 해보겠습니다.
2. Quickfix 창이 자동으로 열리고 (((
토론 #8
보기가) 오류가 발생합니다.3. Qickfix 창을 닫고 오류를 해결합니다.
나는 다른 사람들이 다른 방식을 더 좋아할 수도 있다는 것을 안다.그러나 나는
:copen
와 :copen
가 왜 다른지 모르겠다.포인트가 뭐예요?이상적인 경우, 가져올 보기를 설정할 수 있어야 합니다.현재, 적어도 테스트를 실행할 때, 미관 (내 Rrunner
Preference 중) 이나 속도 사이에서 선택해야 합니다. 이것은 혼합된 것이 아닙니다.Rake
원하는 실행을 :copen
로 할 수 있습니다.최신 제출은 토론 #9
투영을 사용하여:Dispatch -compiler=rails bin/rspec ...
기본값으로 설정할 수 있습니다.이것은 내가 가고 싶은 범위가 많지 않다.:Dispatch
네,감사합니다.나는 이 일을 한층 더 조사할 것이다."dispatch"
이것은 나로 하여금 자신의 써레 포장기를 사용할 수 있게 하는 것입니까?해봤어요.let g:rails_projections = {
\ "*": {
\ "dispatch": "/my/custom/rake"
\ }
\ }
그러나 그것이 작용하지 않기 때문에 나는 틀림없이 무언가를 오해한 것이다.아니면 더 좋은 방법이 생겼나요?(현재 나는토론 #10
토론 #11
의 시작에 있다.)return '/my/custom/rake'
아니요, 전화function! s:app_rake_command
할 때 일어나는 일을 컨트롤해 드릴게요.Projectionist에서
토론 #12
투영 키를 설정할 수 있습니다. rails와 유사한 것을 이식할 수 있다고 생각합니다.vim가 최선이야.라크가 레일 5에서 사라질 것 같아 아무도 발굴을 서두르지 않았다.(그리고 욕조를 주문할 수 없나요?):Dispatch<CR>
아, 그래, 일리가 있어.나는 실제로docker 용기 ("make"
에서 이 명령을 실행하기 때문에, 그것을 토론 #13
에 제출하면 생산 프로그램을 파괴할 것이다.그러나 이것은 충분히 흔히 볼 수 있는 용례가 아닐 수도 있기 때문에 나는 현재의 해결 방안에 대해 의견이 없다.그리고 답장해 주셔서 감사합니다.나는 정말 너의 모든 훌륭한 플러그인에 감사한다.
docker-compose run --rm web bundle exec rake
@tpope 안녕하세요, 팀!현재 Rails의spring 프리로드 프로그램이 사용 가능한 정도(IMHO)로 개선되었습니다. bin/rake
ed토론 #14
명령을 내spring 서버에 전달할 수 있도록 특정한 절차가 있습니까?현재 내dispatch
에는 이 줄만 있다.let g:rspec_command = "Dispatch rspec {spec}"
감사합니다!rspec
스프링만 사용하면 투명하게 일해야 한다..vimrc
마지막으로 토론 #15
bitstub를 추가하고 명령을 다음으로 전환합니다.FYI
bin/rspec
는 궤도가 아닙니다.vim 옵션.그것은 틀림없이 다른 플러그인의 문제일 것이다.
Reference
이 문제에 관하여(Spring 및: Rake 및 Binstubs 통합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://github.com/tpope/vim-rails/issues/316텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)