Emacs 如何使用“查找测试文件”

Emacs 如何使用“查找测试文件”,emacs,projectile,emacs-helm,emacs-prelude,emacs-projectile,Emacs,Projectile,Emacs Helm,Emacs Prelude,Emacs Projectile,我正在使用Emacs和Sproject,并试图设置测试文件的路径,以便使用Sproject在实现和测试之间切换 我调用M-xprojectle-find-test-file,但Helm缓冲区是空的。无论我在pattern字段中输入什么,Helm缓冲区中都不会显示要选择的文件,输入相对于项目根的测试文件路径只会导致在项目根打开Dired缓冲区 请建议如何使用投射物查找测试文件这对您的问题不是一个很好的答案,但是投射物查找测试文件在我得到提示之前就已经挂起了。我不想弄清楚那里发生了什么,所以我只是创

我正在使用Emacs和Sproject,并试图设置测试文件的路径,以便使用
Sproject在实现和测试之间切换

我调用M-xprojectle-find-test-file,但Helm缓冲区是空的。无论我在
pattern
字段中输入什么,Helm缓冲区中都不会显示要选择的文件,输入相对于项目根的测试文件路径只会导致在项目根打开Dired缓冲区


请建议如何使用
投射物查找测试文件

这对您的问题不是一个很好的答案,但是
投射物查找测试文件
在我得到提示之前就已经挂起了。我不想弄清楚那里发生了什么,所以我只是创建了:

(defun my-test-prefix (project-type) "test_")

定制的
射弹测试功能前缀
指向该前缀。这使我能够在实现和测试之间进行切换,这正是我真正需要的。

sparroject
通过在源文件中添加后缀/前缀来猜测给定源文件的测试文件名。例如,如果您有一个
hello.rb
,那么它会尝试在项目中查找名为
hello\u test.rb
的文件

默认情况下,它有一些从项目类型映射到测试后缀/前缀的规则。以下是实际代码:

(defun projectile-test-suffix (project-type)
  "Find default test files suffix based on PROJECT-TYPE."
  (cond
   ((member project-type '(rails-rspec ruby-rspec)) "_spec")
   ((member project-type '(rails-test ruby-test lein-test go)) "_test")
   ((member project-type '(scons)) "test")
   ((member project-type '(maven symfony)) "Test")
   ((member project-type '(gradle grails)) "Spec")))
如果您在
中没有看到任何内容,则查找测试文件
,这意味着它很可能无法通过添加后缀/前缀来查找与源文件相关的内容


这可以通过
射弹测试后缀功能进行定制。默认情况下,变量指向上述函数,但您可以使用自己的规则覆盖它。

自最初发布以来的几年中,指定自定义测试前缀函数的投射变量的名称似乎已重命名为
投射测试前缀函数
,以供将来阅读此函数的人使用,在最初发布后的几年中,指定包含项目类型信息的数据结构的代码似乎发生了变化。例如,
rails rspec
的数据通过调用
射弹寄存器项目类型
存储为属性列表,然后通过调用
射弹测试后缀
提取后缀信息。以防你像我一样寻找上面的代码。以及@Yiman的答案,我也发现这很有帮助。