2010-04-14 14 views
7

Ce que je voudrais si Cc Cc pour exécuter py.test et afficher la sortie dans l'autre tampon si le nom du fichier en cours d'édition commence par test_ et exécuter normalement py-execute-buffer autrement. Comment ferais-je cela? J'utilise emacs 23.1.1 en mode python et peux accéder à py.test depuis la ligne de commande.Exécuter py.test à partir d'emacs

Répondre

7

Ceci n'est pas particulièrement bien testé; c'est juste une idée approximative.

(defun py-do-it() 
    (interactive) 
    (if (string-match 
     (rx bos "test_") 
     (file-name-nondirectory (buffer-file-name))) 
     (compile "py.test") 
    (py-execute-buffer))) 

(add-hook 'python-mode-hook 
      (lambda() 
      (local-set-key 
      (kbd "F5")     ;or whatever 
      'py-do-it))) 
+0

Merci, j'ai essayé et ça fonctionne très bien. – Nikwin

+0

Après avoir travaillé avec un peu plus, j'ai décidé que je voulais que py.test ne s'exécute que sur le tampon courant, donc j'ai remplacé (compilez "py.test") par (shell-command (concat "py.test" (buffer -nom de fichier))) – Nikwin