2009-07-28 7 views
3

J'essaie de charger par programme certaines bibliothèques clojure pour créer un simple programme d'auto-test.Chargement par programme des bibliothèques clojure

Ce que je finis par l'envoi d'exiger est ce

(require :reload '("peg" "test.peg-test")) 

Comment puis-je transformer cette liste en quelque chose d'utile, ou suis-je tout à fait aboyer le mauvais arbre? Savez-vous qu'il existe des bibliothèques de tests disponibles dans clojure.contrib?

Répondre

4

Vous pouvez trouver cela plus facile si vous orientez votre réflexion autour de namespaces. Si vous regardez le user.clj de Bill Clementson, vous trouverez une fonction utile pour vider l'espace de noms user et recharger les espaces de noms de base en vue de l'introduction de vos espaces de noms de test.

Dans tous les cas, en utilisant votre code namespaces fonctionnerait comme ceci:

(ns testing-peg 
    (:require [peg test.peg-test]) 
+0

le user.clj semble avoir ce que je veux. L'autre pièce manquante, en prenant une chaîne et en l'utilisant lors de l'appel require, est faite avec un appel à (nom du symbole). (carte # (ns-reload! (symbole%)) '("peg" "test.peg-test")) – Ball

+0

Ok, bien. Je n'étais pas sûr à 100% que le problème était, alors j'ai essayé d'en toucher tous les possibles. user.clj était la première idée, et les deux autres paragraphes sont venus plus tard. Marquer un autre pour la valeur des réponses intestinales! – Pinochle

Questions connexes