2016-03-04 22 views
5

Ich benutze Emacs und Projektil und versuche, den Pfad zu einer Test-Datei, so dass ich projectile-toggle-between-implementation-and-test verwenden kann.So verwenden Sie Projektil-finden-Test-Datei

Ich nenne M-xProjektil-find-Test-Datei aber der Helm Puffer leer ist. Was auch immer ich in das Feld pattern eingegeben habe, es wird keine Datei im Helm-Puffer angezeigt, die den Testdateipfad relativ zum Projektstammverzeichnis auswählt und eingibt, sondern nur dazu führt, dass ein Dired-Puffer im Projektstamm geöffnet wird.

Bitte beraten, wie projectile-find-test-file

Antwort

6

projectile Erraten den Namen der Testdatei bei einer Quelldatei durch Hinzufügen von Suffix/Präfix zu Ihrer Quelldatei. Wenn Sie zum Beispiel eine hello.rb haben, versucht es in Ihrem Projekt eine Datei namens hello_test.rb zu finden.

Es hat standardmäßig einige Regeln, die vom Projekttyp zum Test Suffix/Präfix zuordnet. Hier ist der eigentliche 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"))) 

Wenn Sie nichts in projectile-find-test-file sehen, das bedeutet, es höchstwahrscheinlich nicht alles im Zusammenhang mit der Quelldatei durch Hinzufügen Suffix/Präfix finden.

Dies kann über projectile-test-suffix-function angepasst werden. Standardmäßig zeigt die Variable auf die obige Funktion, aber Sie können sie mit Ihren eigenen Regeln überschreiben.

3

Diese zu verwenden ist keine große Antwort auf Ihre Frage, aber projectile-find-test-file wurde nur für mich hängen, bevor ich noch eine Aufforderung bekam. Ich habe die Neigung nicht, um herauszufinden, was da los war so gerade erstellt I:

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

und maßgeschneiderte projectile-test-function-prefix zu, dass zu zeigen. Das hat projectile-toggle-between-implementation-and-test funktioniert für mich das ist alles was ich wirklich brauchte.