jakemcc / test-refresh

Refreshes and reruns clojure.tests in your project.
393 stars 28 forks source link

I get this error when moving a test file with test-refresh running #54

Closed Pancia closed 8 years ago

Pancia commented 8 years ago

Probably involves a similar fix to #53

java.lang.Exception: No namespace: fake_project.something-spec found
    at clojure.core$the_ns.invoke(core.clj:4008)
    at clojure.core$ns_publics.invoke(core.clj:4040)
    at com.jakemccrary.test_refresh$nses_selectors_match$iter__32253__32259$fn__32260.invoke(test_refresh.clj:113)
    at clojure.lang.LazySeq.sval(LazySeq.java:40)
    at clojure.lang.LazySeq.seq(LazySeq.java:56)
    at clojure.lang.RT.seq(RT.java:507)
    at clojure.lang.RT.nthFrom(RT.java:924)
    at clojure.lang.RT.nth(RT.java:883)
    at clojure.core$distinct$step__5073$fn__5074$fn__5076.invoke(core.clj:4820)
    at clojure.core$distinct$step__5073$fn__5074.invoke(core.clj:4820)
    at clojure.lang.LazySeq.sval(LazySeq.java:40)
    at clojure.lang.LazySeq.seq(LazySeq.java:49)
    at clojure.lang.RT.seq(RT.java:507)
    at clojure.core$seq__4128.invoke(core.clj:137)
    at clojure.core$map$fn__4553.invoke(core.clj:2616)
    at clojure.lang.LazySeq.sval(LazySeq.java:40)
    at clojure.lang.LazySeq.seq(LazySeq.java:49)
    at clojure.lang.Cons.next(Cons.java:39)
    at clojure.lang.RT.next(RT.java:674)
    at clojure.core$next__4112.invoke(core.clj:64)
    at clojure.core$concat$cat__4217$fn__4218.invoke(core.clj:707)
    at clojure.lang.LazySeq.sval(LazySeq.java:40)
    at clojure.lang.LazySeq.seq(LazySeq.java:49)
    at clojure.lang.RT.seq(RT.java:507)
    at clojure.core$seq__4128.invoke(core.clj:137)
    at clojure.core$filter$fn__4580.invoke(core.clj:2679)
    at clojure.lang.LazySeq.sval(LazySeq.java:40)
    at clojure.lang.LazySeq.seq(LazySeq.java:56)
    at clojure.lang.RT.seq(RT.java:507)
    at clojure.core$seq__4128.invoke(core.clj:137)
    at com.jakemccrary.test_refresh$suppress_unselected_tests$move_all_meta_BANG___32244.invoke(test_refresh.clj:103)
    at com.jakemccrary.test_refresh$suppress_unselected_tests.invoke(test_refresh.clj:105)
    at com.jakemccrary.test_refresh$run_selected_tests.invoke(test_refresh.clj:142)
    at com.jakemccrary.test_refresh$run_tests.invoke(test_refresh.clj:157)
    at com.jakemccrary.test_refresh$monitor_project$fn__32312.invoke(test_refresh.clj:239)
    at com.jakemccrary.test_refresh$monitor_project.invoke(test_refresh.clj:227)
    at user$eval32351.invoke(form-init8728850342479536222.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6782)
    at clojure.lang.Compiler.eval(Compiler.java:6772)
    at clojure.lang.Compiler.load(Compiler.java:7227)
    at clojure.lang.Compiler.loadFile(Compiler.java:7165)
    at clojure.main$load_script.invoke(main.clj:275)
    at clojure.main$init_opt.invoke(main.clj:280)
    at clojure.main$initialize.invoke(main.clj:308)
    at clojure.main$null_opt.invoke(main.clj:343)
    at clojure.main$main.doInvoke(main.clj:421)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.lang.Var.invoke(Var.java:383)
    at clojure.lang.AFn.applyToHelper(AFn.java:156)
    at clojure.lang.Var.applyTo(Var.java:700)
    at clojure.main.main(main.java:37)
Pancia commented 8 years ago

This seems to best be fixed by refresh (hitting enter) until you've fixed the problem OR by restarting test-refresh once you've fixed it...

jakemcc commented 8 years ago

Yeah, this particular exception looks like a race condition between a file being moved and test refresh scanning directories for files. I'm guessing there are some other situations when it happens as well.

Thanks for poking around a bit and reporting.