2017-01-05 11 views
1

CIDER의 cider-auto-test-mode을 사용하여 Emacs/CIDER에서 내 네임 스페이스 테스트를 실행하려고합니다. 그러나 네임 스페이스를로드 할 때마다 Not an nREPL dict 오류가 발생합니다. 이 문제를 해결하거나 더 디버깅하는 방법에 대한 제안 사항이 있으십니까?"nREPL dict가 아닙니다"사이다 자동 테스트 모드 사용

내가 지금까지 발견 한 내용을 설명하기 전에 : CIDER 0.12.0, 사이다 nrepol 버전 ​​0.10.0 및 nREPL 0.2.12을 사용 중입니다. CIDER/cider-nrepl 버전 불일치가 좋지 않다는 것을 알고 있습니다. 선택의 여지가 없지만 그것이이 문제의 원인이라면 나는 그것을 고칠 수 있습니다.

동일한 오류 메시지는 CIDER Github issuea follow-up humane-test-output issue에서 논의되었습니다. humane-test-output을 암시하는 빌드 프로세스에서 아무것도 찾지 못했습니다.

I 파일 (참조 CK 등록)을로드 처음으로, 테스트 실행하고 나는 다음과 같은 스택 추적을 얻을 :

error("Not an nREPL dict") 
nrepl-dict-map(#[...] ((dict "context" "my `testing` comment" ...))) 
nrepl-dict-map(#[...] (dict "my-deftest-name" ((dict "context" "my `testing` comment" ...)))) 
cider-test-highlight-problems((dict "my-deftest-name" ((dict "context" "my `testing` comment" ...)))) 
nrepl--dispatch-response(...) 

나는 toggle-debug-on-error로드 이미 파일을 가진 후 테스트를 다시 실행하지 않는 경우

error("Not an nREPL dict") 
nrepl-dict-keys(((dict "context" "my `testing` comment" ...))) 
nrepl-dict-map(#[...] (dict "my-deftest-name" ((dict "context" "my `testing` comment" ...)) 
cider-test-clear-highlights() 
cider-test-execute(...) 
cider-test-run-ns-tests(...) 
cider--test-silently() 

약간 다른 스택 추적하지만 같은 문제 : dict 목록 is not a valid nREPL dict의 목록과 나는이 스택 트레이스를 얻을. cider-test-highlight-problems은 분명히 바깥 쪽 dict 목록에 a namespace and vars 목록을 가져오고 dict 목록을받는 대신 dict 목록을 as apparently expected으로 지정하지만 대신 내 스택 추적에 표시된대로 dict 목록의 간단한 목록을받습니다.

내가 어떻게 더 연구하거나 해결할 수 있을지 제안 해 주시겠습니까?

+0

"선택에 의하지 않음"버전 불일치에 도움이 될만한 것이 있습니까? 소리는 다른 것 같지만 관련있는 질문입니까? –

답변

1

먼저 확인해야 할 것은 CIDER 대 cider-nrepl 버전 차이입니다.

~/.lein/profile.clj의 종속성 섹션에 cider-nrepl을 넣고 그 오류가 사라질 때까지 버전과 함께해야만하는 경우가있었습니다.

더 이상이 작업을 수행 할 필요가 없으며 이와 같은 증상으로 인해 많은 문제가 발생합니다. 요즘 사이더가 일 때 cider-jack-in을 실행할 때 가장 일반적인 해결책은 입니다. 귀하의 lein profile에서 사이다를 제거하고 자동으로 올바른 cider-nrepl 버전을 선택하게하십시오.

적어도 여기에 비슷한 증상이있는 사람이라면 누구나 해결할 수있는 좋은 방법이지만 문제는 아닙니다.