2010-03-17 5 views
3

J'ai inclus les assemblys nécessaires dans un projet Windows Class dans VS2008. Quand je commence à essayer d'écrire un test, j'obtiens une ligne de gribouillis rouge et le message [Test] n'est pas un attribut valide. J'ai utilisé NUnit avant ... peut-être une version antérieure. Qu'est-ce que je fais mal? Je suis sur la version 2.5.2.NUnit [Test] n'est pas un attribut valide

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using NUnit; 
using NUnit.Core; 
using NUnit.Framework; 

namespace MyNamespace 
{ 
    public class LoginTests 
    { 
     [Test] 
     public void CanLogin() 
     { 
     } 
    } 
} 
+1

Avez-vous référencé les assemblages dans le projet? –

+0

essayez de compiler et coller le premier message d'erreur – Grzenio

+2

D'un côté, le seul espace de noms dont vous avez besoin est nunit.framework. –

Répondre

4

Ce sont les lignes supplémentaires using qui vous causent des problèmes. Utilisez uniquement using NUnit.Framework;

En interne NUnit.Core a également un type nommé Test et vous êtes en conflit avec cela.

En général, vous pouvez utiliser [TestAttribute] pour épeler la partie de l'attribut qui résout la collision.

+0

Merci à un combo de cela ... et laisser tomber et ajouter mes références semblait résoudre le problème. – BuddyJoe

+0

@tyndall - content que cela ait aidé. Désolé, j'aurais dû être plus explicite sur la suppression de la référence à NUnit.Core. Vous ne devriez pas en avoir besoin pour un test normal. –

+0

J'ai le même message d'erreur mais cette solution ne fonctionne pas. Il est intéressant que je reçois la ligne de gribouillage rouge sur tous les mots-clés tels que Test, Assert, TestFixture et ... –

0

Il vous manque le [TestFixture] attribut sur le dessus de votre classe, vous ne devez également inclure les usings suivantes pour NUnit: en utilisant NUnit.Framework;

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using NUnit.Framework; 

namespace MyNamespace 
{ 
    [TestFixture] 
    public class LoginTests 
    { 
     [Test] 
     public void CanLogin() 
     { 
     } 
    } 
} 
+2

Non, ce n'est pas la cause de l'erreur. –

+1

Je suis d'accord. [TestFixture] ne me permettra pas de l'utiliser sans paramètres. Je n'ai jamais vu ça avant. Mais je pense que j'ai lu quelque part qu'il n'était plus nécessaire pour les classes de test simples. Mais je n'arrive pas à comprendre le problème [Test]. – BuddyJoe

6

J'ai rencontré un problème similaire avec la version 2.5.3. Le problème était que je cherchais les fichiers dll dans le répertoire "lib" de mon installation nunit alors que j'aurais dû regarder dans le répertoire "framework". Donc, quand j'ai fait référence à la "framework \ nunit.framework.dll" dll tout a fonctionné. Espérons que cela aide

+1

Cette réponse était sur place pour ma part - référencement à partir du cadre dir résolu le problème – Hauge

Questions connexes