Skip to content

Throwing exception in test fixture crashes Cider #719

@Whoops

Description

@Whoops

Expected behavior

Throwing an exception in a test fixture is reported in a reasonable way.

Actual behavior

Cider crashes with the exception (lein):

Exception in thread "nRepl-session-ed5a944b-ef91-4e42-ac3e-75bf00fb04d6" java.lang.NullPointerException
	at clojure.lang.Symbol.intern(Symbol.java:59)
	at clojure.core$symbol.invokeStatic(core.clj:579)
	at clojure.core$symbol.invoke(core.clj:574)
	at cider.nrepl.middleware.test$report_fixture_error.invokeStatic(test.clj:183)
	at cider.nrepl.middleware.test$report_fixture_error.invoke(test.clj:173)
	at cider.nrepl.middleware.test$test_vars.invokeStatic(test.clj:220)
	at cider.nrepl.middleware.test$test_vars.invoke(test.clj:209)
	at cider.nrepl.middleware.test$test_ns.invokeStatic(test.clj:231)
	at cider.nrepl.middleware.test$test_ns.invoke(test.clj:222)
	at cider.nrepl.middleware.test$test_var_query.invokeStatic(test.clj:242)
	at cider.nrepl.middleware.test$test_var_query.invoke(test.clj:235)
	at cider.nrepl.middleware.test$handle_test_var_query_op$fn__6270$fn__6271.invoke(test.clj:280)
	at clojure.lang.AFn.applyToHelper(AFn.java:152)
	at clojure.lang.AFn.applyTo(AFn.java:144)
	at clojure.core$apply.invokeStatic(core.clj:657)
	at clojure.core$with_bindings_STAR_.invokeStatic(core.clj:1965)
	at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1965)
	at clojure.lang.RestFn.invoke(RestFn.java:425)
	at cider.nrepl.middleware.test$handle_test_var_query_op$fn__6270.invoke(test.clj:272)
	at clojure.lang.AFn.run(AFn.java:22)
	at nrepl.middleware.session$session_exec$main_loop__1045$fn__1049.invoke(session.clj:171)
	at nrepl.middleware.session$session_exec$main_loop__1045.invoke(session.clj:170)
	at clojure.lang.AFn.run(AFn.java:22)
	at java.lang.Thread.run(Thread.java:748)

or (deps.edn):

Exception in thread "nRepl-session-2a7d802b-27a1-436e-8879-658a09ad58b8" java.lang.IllegalArgumentException: no conversion to symbol
	at clojure.core$symbol.invokeStatic(core.clj:596)
	at clojure.core$symbol.invoke(core.clj:589)
	at cider.nrepl.middleware.test$report_fixture_error.invokeStatic(test.clj:183)
	at cider.nrepl.middleware.test$report_fixture_error.invoke(test.clj:173)
	at cider.nrepl.middleware.test$test_vars.invokeStatic(test.clj:220)
	at cider.nrepl.middleware.test$test_vars.invoke(test.clj:209)
	at cider.nrepl.middleware.test$test_ns.invokeStatic(test.clj:231)
	at cider.nrepl.middleware.test$test_ns.invoke(test.clj:222)
	at cider.nrepl.middleware.test$test_var_query.invokeStatic(test.clj:242)
	at cider.nrepl.middleware.test$test_var_query.invoke(test.clj:235)
	at cider.nrepl.middleware.test$handle_test_var_query_op$fn__5941$fn__5942.invoke(test.clj:280)
	at clojure.lang.AFn.applyToHelper(AFn.java:152)
	at clojure.lang.AFn.applyTo(AFn.java:144)
	at clojure.core$apply.invokeStatic(core.clj:665)
	at clojure.core$with_bindings_STAR_.invokeStatic(core.clj:1973)
	at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1973)
	at clojure.lang.RestFn.invoke(RestFn.java:425)
	at cider.nrepl.middleware.test$handle_test_var_query_op$fn__5941.invoke(test.clj:272)
	at clojure.lang.AFn.run(AFn.java:22)
	at nrepl.middleware.session$session_exec$main_loop__1036$fn__1040.invoke(session.clj:171)
	at nrepl.middleware.session$session_exec$main_loop__1036.invoke(session.clj:170)
	at clojure.lang.AFn.run(AFn.java:22)
	at java.lang.Thread.run(Thread.java:748)

Steps to reproduce the problem

Create a new project with either:
clj -A:new app nrepl-test/app
or
lein new app nrepl-test

Open the test file test/nrepl_test/core_test.clj (in the lein project) with emacs.
Add a fixture that throws an exception like so:

(defn setup  []
  (throw (Exception. "whoopsie")))

(use-fixtures :each setup)

(deftest a-test
  (testing "FIXME, I fail."
    (is (= 0 1))))

M-x cider-jack-in-clj
M-x cider-auto-test-mode
M-x cider-eval-buffer
Your REPL has now crashed with the above exception and does not accept further input.

Environment & Version information

CIDER version information

(lein)
;; Connected to nREPL server - nrepl://localhost:40425
;; CIDER 0.23.0 (Lima), nREPL 0.6.0
;; Clojure 1.9.0, Java 13.0.1
(deps)
;; Connected to nREPL server - nrepl://localhost:42241
;; CIDER 0.23.0 (Lima), nREPL 0.6.0
;; Clojure 1.10.1, Java 13.0.1

Lein/Boot version

lein 2.9.1

Emacs version

26.3

Operating system

Arch Linux, up-to-date as of 1/20/2019

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions