Aucun constructeur approprié a été trouvé dans NUnit de Paramétrer les tests
Voir ci-dessous, montage de test:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
///<summary>
///Tests relating to Harry Potter
///</summary>
[TestFixture("Dumbledore")]
public class HarryPotterTests
{
public string Name;
public HarryPotterTests(string personName)
{
Name = personName;
}
[Test]
public void Test()
{
Console.WriteLine(Name);
}
}
Ce que je suis en train de réaliser est de voir comment paramétrer appareils de test de travail. Je n'ai pas utilisé avant donc c'est mon premier coup de couteau à elle.
Il semble OK pour moi. Constructeur avec une chaîne, et en le passant dans une chaîne de caractères dans le test réel attribut d'appareil. Il compile. Test simplement écrit à une fenêtre de console.
Le test cependant échoue avec ce message:
No suitable constructor was found
Suis-je raté quelque chose aveuglément évident?
N'importe où j'ai mis un point d'arrêt, rien n'est touché, si c'est un échec très tôt.
- Où en êtes-vous de l'appel de ce constructeur? C'est une erreur de compilateur, et aucun point d'arrêt sera frappé depuis votre code n'est pas en cours d'exécution.
- Votre code fonctionne parfaitement bien avec NUnit 2.6, la course de fois le NUnit GUI et Resharper 7 test runner. Pourrait-il être que vous utilisez un ancien NUnit version? Paramétrable d'appareils de test a été introduit dans la version 2.5.
- +1 pour le LOL à votre choix de noms. (et utile pour moi)
Vous devez vous connecter pour publier un commentaire.
J'ai eu ce problème. Il a été causé par le constructeur de lancer une erreur, plutôt que d'un problème avec les paramètres du constructeur. Le message d'erreur était trompeuse dans mon cas.
J'ai connu ce problème - l'exécution d'une classe de Test sous NUnit et via le Resharper 8.
Cependant, si j'ai changé le TestFixture déclaration de cette forme
à cette forme:
puis ils ont travaillé... ce qui a également amélioré les choses via NUnit - mais, comme il arrive pour mes tests j'ai connectionString et Entity Framework questions qui Resharper aide et NUnit n'est pas - mais pour l'essentiel je crois que NUnit est plus heureux avec la dernière syntaxe.
Votre classe de test est parfaitement valide et renvoie Passé lors de l'exécution de NUnit 2.6 et .NET 4, à la fois avec le NUnit GUI et le Resharper 7 test runner.
L'erreur que vous voyez se produit lorsque les types d'arguments dans le
TestFixture
constructeur ne correspond pas aux types de la classe de test constructeur. Par exemple, si j'ajoute la ligne:J'ai l'erreur suivante s'affiche dans la NUnit GUI:
Ce problème particulier est un bug dans JustCode de Test NUnit Coureur. En ré-exécutant ce avec Resharper 7 NUnit Coureur et le NUnit GUI, les deux passent.
Vérifier si votre constructeur a toute une logique qui pourrait être défectueux. Il s'avère que j'ai eu un appel dans le Constructeur (mauvais!) qui devraient avoir été dans
TestFixtureSetUp
. Dans Resharper c'est le message d'erreur par défaut paramétrée avec d'appareils de test si quelque chose déclenche une exception dans le constructeur.De façon assez évidente, mais peut également se produire si le test du constructeur n'est pas public.
Juste au cas où il aide à quelqu'un d'autre.
Dans mon cas, j'ai été en utilisant TestFixtureSource, et une fonction pour construire les combinaisons pour les différents TestFixtures. S'avère que le nombre d'élément dans le tableau ne correspond pas au nombre de paramètres du constructeur. (J'ai oublié le -1)