dans la version actuelle de NUnit, je peux paramétrer TestFixture et l'instancier plusieurs fois. E.g .:Convertir la chaîne en code C#
[TestFixture("var1")]
[TestFixture("var2")]
[TestFixture("var3")]
public class MyTestFixture
{
private string var;
public MyTestFixture(string var)
{
this.var = var;
}
...
}
Cela va instancier le MyTestFixture 3 fois avec le paramètre argument. Mon problème est le NUnit actuel n'a pas de fonction de source de données pour l'attribut TextFixture (seulement TestCaseSource). J'ai besoin d'instancier le TestFixture basé sur l'entrée de données, et chaque TestFixture a un ensemble différent d'entrées de données de test. Aucun problème avec les données du test, grâce à TestCaseSource. Mais comment puis-je faire cela pour l'attribut TestFixture?
Mon idée est de générer l'attribut TestFixture à la volée puis remplacez-la chaîne de code et l'insérer dans le code de test, par exemple .: quelque chose comme ceci:
ConvertToCode(GenerateTestFixture());
public class MyTestFixture
{
...
}
Comment puis-je faire cela? Ou y a-t-il un meilleur moyen?
Merci beaucoup pour votre aide.
Meilleures salutations,
Edward
Merci beaucoup Jeremy. Le truc TestFixture est piloté par les données, donc je ne saurais pas à l'avance combien de valeur il y aura. L'autre approche fonctionnerait-elle pour TestFixture piloté par les données? Si oui, pouvez-vous me donner un court échantillon? Encore merci beaucoup pour votre aide. Cordialement, Edward –
Si vous ne savez pas combien il y aura alors je ne pense pas qu'il sera possible d'avoir des tests séparés pour chaque élément de données. Au lieu de cela, vous devrez avoir un test qui teste tous les éléments de données. –
En fait, le test existe déjà avec un cas de test test tous les éléments de données, nous avons également un résultat de test personnalisé pour générer des résultats pour chaque élément de données. Mais comme NUnit 2.5 prend en charge les données, j'ai été chargé de convertir le test existant en données UNit pilotées. Cela a quelques avantages sur le test existant, comme regarder mieux dans l'interface utilisateur, peut exécuter un test, etc.Je peux simplement utiliser le TestCaseSource, le problème est que le nom du test devient très long avec beaucoup de doublons comme cas de test hiérarchique. Je pense que je vais essayer l'approche de Reflection.Emit. Merci beaucoup pour votre aide. Cordialement, Edward –