2017-01-05 10 views
1

Я пытаюсь запустить мои тесты пространства имен в Emacs/CIDER, используя CIDER's cider-auto-test-mode. Однако, когда я загружаю пространство имен, я получаю ошибку Not an nREPL dict. Любые предложения о том, как решить эту проблему или отладить ее?«Не nREPL dict» с использованием режима синтаксического теста

Прежде чем описать то, что я нашел до сих пор: Я использую сидр 0.12.0, сидр nrepl версии 0.10.0 и nREPL 0.2.12. Я знаю, что несоответствие версии CIDER/cider-nrepl не является хорошим; это не по выбору, но я мог бы исправить это, если это является причиной этой проблемы.

Это же сообщение об ошибке обсуждалось в CIDER Github issue и a follow-up humane-test-output issue. Я ничего не нашел в процессе сборки, который я использую, что может повлиять на humane-test-output.

Первый раз, когда я загрузить файл (Cc 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 явно ожидает и получает a namespace and vars во внешнем dict списке, вместо получения списка dictdict списков as apparently expected вместо этого получает простой список из dict списков, как показано в моих трассировочных трассировках.

Любые предложения о том, как я мог бы продолжить исследование или решить эту проблему?

+0

Есть ли что-нибудь, что я могу помочь с несоответствием версии «не по выбору»? Похоже, это другой, хотя и связанный, вопрос? –

ответ

1

Первое, что нужно проверить, это различие версий CIDER vs cider-nrepl.

Раньше было, что вам нужно было положить cider-nrepl в ваш раздел зависимости ~/.lein/profile.clj и возиться с версиями до тех пор, пока эта ошибка не исчезнет.

Вам больше не нужно это делать, и это вызывает множество проблем с такими симптомами. В эти дни cider предоставляет свои собственные зависимости, когда вы запускаете cider-jack-in, поэтому наиболее распространенным решением является удалите сидр из профиля lein и дайте ему выбрать правильную версию сидра-nrepl автоматически.

Это не может быть проблемой здесь, хотя это хорошая вещь для решения, по крайней мере, для тех, кто приходит и находит подобные симптомы позже.