2009-12-29 5 views
4

J'utilise NUnit 2.5 et NAnt 0.85 pour compiler une bibliothèque .NET 3.5. Parce que NAnt 0.85 ne supporte pas .NET 3.5 out of the box, j'ai ajouté une entrée pour le framework 3.5 à NAnt.exe.config. 'MyLibrary' se construit, mais lorsque je frappe la cible "test" pour exécuter les tests NUnit, aucun d'entre eux ne semble fonctionner.NAnt ne pas exécuter les tests NUnit

[nunit2] Tests run: 0, Failures: 0, Not run: 0, Time: 0.012 seconds 

Voici les entrées dans mon fichier NAnt.build pour la construction et l'exécution des tests:

<target name="build_tests" depends="build_core"> 
    <mkdir dir="Target" /> 
    <csc target="library" output="Target\Test.dll" debug="true"> 
     <references> 
      <include name="Target\MyLibrary.dll"/> 
      <include name="Libraries\nunit.framework.dll"/> 
     </references> 
     <sources> 
      <include name="Test\**\*.cs" /> 
     </sources> 
    </csc> 

</target> 

<target name="test" depends="build_tests">     
    <nunit2> 
     <formatter type="Plain" /> 
     <test assemblyname="Target\Test.dll" /> 
    </nunit2> 
</target> 

Est-il un problème de versioning je dois être au courant? Test.dll fonctionne correctement dans l'interface graphique de NUnit.

Le dll de test est sans aucun doute être trouvé, parce que si je me déplace, je reçois l'erreur suivante:

Failure executing test(s). If you assembly is not build using NUnit 2.2.8.0... Could not load file or assembly 'Test' or one of its dependencies...

Je vous serais reconnaissant si quelqu'un pouvait me diriger dans la bonne direction ou décrire une situation similairement ils ont rencontré.

Modifier Je l'ai depuis essayé avec NAnt 0.86 beta 1, et le même problème se produit.

Répondre

9

La tâche Nunit2 Nant est toujours codée en dur pour utiliser la bibliothèque Nunit 2.2.

Voir docs: http://nant.sourceforge.net/release/latest/help/tasks/nunit2.html

"Runs tests using the NUnit V2.2 framework"

Vous pourrez peut-être régler ce problème avec la redirection de liaison de réunion, mais je pense que la recommandation est juste d'utiliser le Nant <exec> tâche et appeler le coureur de la console NUnit 2.5 directement.

.: par exemple

<!-- Run Unit Tests under NUnit 2.5 --> 
    <exec program="${LibraryPath}\NUnit\2.5.7\nunit-console.exe"> 
     <arg value="${SourcePath}\ProjectName.Tests\bin\Release\ProjectName.Tests.dll" /> 
    </exec> 

Beaucoup plus simple de toute façon.

Je cours ceci par l'intermédiaire de TeamCity et la sortie de test d'unité semble toujours se comporter correctement.

+0

Merci, il est utile de connaître la solution de contournement habituelle! –

1

Je n'ai aucune expérience avec la configuration NAnt 0.85 modifiée manuellement. Peut-être que vous devriez essayer le latest nightly de NAnt (0.86 beta 2). En utilisant cette version, nous construisons tous nos projets .NET 3.5 sans aucune plainte.

0

Pour une vérification d'intégrité, avez-vous veillé à inclure les attributs NUnit appropriés dans vos classes de test? Ces attributs sont les points d'ancrage par lesquels NUnit détermine quelles classes sont des appareils de test, et quelles méthodes sont des cas de test.

Dans le passé, j'ai fait l'erreur de ne pas inclure les attributs appropriés, et d'exécuter les tests sans résultat apparent. C'est une chose simple, mais juste s'assurer.

Questions connexes