2 votes

Le test NUnit ne reconnaît pas une classe que j'ai créée - "Le nom du type ou de l'espace de noms n'a pas pu être trouvé".

Je suis en train de mettre en place un projet de test NUnit de base pour tester un objet STACK. J'ai créé l'objet MyStack et une classe TestClass . En TestClass ne trouve pas de référence à la MyStack que j'ai créée.

Le nom du type ou de l'espace de noms 'MyStack' n'a pas pu être trouvé (manque-t-il une directive using ou une référence d'assemblage ?

J'utilise NUnit et NUnit3TestAdapter. J'ai ajouté le projet contenant MyStack aux Références du projet de test.

TestClass

using NUnit.Framework;

namespace NUnit.TDDStackTests
{
    [TestFixture]
    public class TestClass
    {
        [Test]
        public void TestMethod()
        {
            MyStack stack = new MyStack();
        }
    }
}

Ma pile

namespace TDDStack
{
    class MyStack
    {
    }
}

3voto

Lews Therin Points 2062

Je vois deux problèmes possibles. Le premier est que le MyStack est private . En C#, les types non imbriqués ont par défaut la valeur private s'il n'y a pas d'autre modificateur avant le class et les types imbriqués à internal .

Essayez d'ajouter le public mot-clé à votre MyStack définition de la classe :

public class MyStack

Deuxièmement, MyStack est dans la TDDStack mais vous essayez d'en créer une instance dans une classe de l'espace de noms NUnit.TDDStackTests l'espace de noms. Pour remédier à ce problème, vous pouvez soit ajouter un using pour l'espace de noms dans le test unitaire :

using NUnit.Framework;
using TDDStack; // Add this

namespace NUnit.TDDStackTests
{
    [TestFixture]
    public class TestClass

    // etc ...

Vous pouvez également préfixer chaque utilisation de MyStack avec l'espace de noms qui le contient :

var stack = new TDDStack.MyStack();

Si les classes se trouvent dans des projets distincts, vous devrez également ajouter une référence au projet contenant les éléments suivants MyStack dans le projet où vous souhaitez l'utiliser (le projet de test unitaire).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X