2009-08-08 9 views

Répondre

2

En fonction des caractéristiques que vous utilisez peut être trivial ou difficile. Vous pouvez utiliser l'espace de noms/alias de type pour utiliser une autre bibliothèque de classes pour faire des assertions et les attributs. J'ai écrit des programmes de console qui exécutent les tests manuellement - mais bien sûr j'ai eu accès aux espaces de noms et aux assemblys vs. Pour mono - ma suggestion serait d'utiliser un autre système de test en le faisant vous-même avec l'espace de noms system.reflection pour charger l'assembly, refléter les attributs et exécuter comme vous le souhaitez, sera fastidieux.

Par exemple:

Pseudo code: 

var assembly = loadAsembly(....) 
foreach(type in assembly.types) { 
if(type is static class and had method with AssemblyInitialiseAttrubute)){ 
    InvokeTheMethod(method); 
} 
} 

foreach(type in assembly.types) { 
if(type is not class and had method with TestClass)){ 
    InvokeTheMethod(method); 
} 
foreach(method in type with ClassinitialiseAttribute) 
} 
... etc 
+0

Oui, pensé que je pourrais finir par rouler ma propre, mais je suis en maintenant pour une solution ready-made. Merci. – bright

+0

Cela s'est avéré assez simple, même si j'ai actuellement une référence à l'ensemble de test unitaire VS qui définit les attributs (que je copie sur Mono, pas très kasher.) – bright

+0

pourquoi ne pas définir ses propres attributs? alors vous obtenez le meilleur des deux mondes? –