当我尝试在emacs项目中运行测试文件时,我遇到了一个问题。
例如,我将this project克隆到我的主目录中,cd到test dir然后使用emacs -batch -l ert -l nrepl-tests.el -f ert-run-tests-batch-and-exit
来运行测试。但它无法找到不在同一目录中的文件nrepl.el。所以,我将一个复制到〜/ nrep.el / test中。但它说“无法打开加载文件:clojure-mode”。这是我怀疑的问题。
我确实使用了clojure-mode和其他libs nrepl.el。但它们都在不同的目录中(在我的例子中,〜/ emacs.d / packs / live / clojure-pack / lib /)。我是否必须将这些文件复制到克隆的nrepl项目中才能运行测试?有没有像在IDE中那样运行测试文件的更好方法。例如,在Intellij中,我只是在测试文件中编写import语句,它会自动为我准备依赖库。这困扰了我很多。我想知道这个问题是否有最佳实践。
答案 0 :(得分:4)
如果我理解正确,我的印象是Carton正是您正在寻找的克服这些依赖性问题的方法:包维护者应该编写一个包含包依赖关系的小文件,包括开发包,和ert一样,并通过carton exec
运行emacs,这将确保将所有内容下载到某个目录,并将此目录添加到load-path
。