Spring 및: Rake 및 Binstubs 통합

7319 단어 vim-rails

묘사

여보세요,
저는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/rakebin/rspec 사이의 대부분 성능 차이가 사라질 것이라고 예상한다.

토론 #5

테스트를 실시했는데 말씀하신 대로 Rails 4.1에서 두 제품의 성능은 매우 비슷합니다.어쨌든, 오래된 Rails 버전을 사용하는 프로젝트에 있어서는 좋은 일일 것이다.디스패치에서 기능 요청을 열 것입니다.윌.
고맙습니다.

토론 #6

Rrunner는 여전히 Rake보다 느리다.a function to measure command execution time in vim를 사용하여 통합 테스트를 실시한 결과 7Rrunner의 결과를 얻었습니다.한편, 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/rakeed

토론 #14

명령을 내spring 서버에 전달할 수 있도록 특정한 절차가 있습니까?현재 내 dispatch에는 이 줄만 있다.
let g:rspec_command = "Dispatch rspec {spec}"
감사합니다!rspec스프링만 사용하면 투명하게 일해야 한다..vimrc 마지막으로

토론 #15

bitstub
를 추가하고 명령을 다음으로 전환합니다.
FYIbin/rspec는 궤도가 아닙니다.vim 옵션.그것은 틀림없이 다른 플러그인의 문제일 것이다.

좋은 웹페이지 즐겨찾기