I'm using Emacs and projectile and trying to set the path to a test file so that I can use projectile-toggle-between-implementation-and-test
.
I call M-xprojectile-find-test-file but the Helm buffer is empty. Whatever I put in the pattern
field, no file shows up in the Helm buffer to select and entering the test file path relative to the project root just causes a Dired buffer to open at the project root.
Please advise how to use projectile-find-test-file
projectile
guesses the test file name given a source file by adding suffix/prefix to your source file. For example, if you have a hello.rb
then it tries to find a file called hello_test.rb
in your project.
It by default has some rules that maps from project type to test suffix/prefix. Here is the actual code:
(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")))
If you don't see anything in projectile-find-test-file
that means most likely it cannot find anything related to your source file by adding suffix/prefix.
This can be customized via projectile-test-suffix-function
. By default the variable points to the function above, but you can override it with your own rules.
This isn't a great answer to your question, but projectile-find-test-file
was just hanging for me before I even got a prompt. I didn't have the inclination to figure out what was going on there so I just created:
(defun my-test-prefix (project-type) "test_")
and customized projectile-test-function-prefix
to point to that. That got projectile-toggle-between-implementation-and-test
working for me which is all I really needed.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With