J'ai vu dans une vidéo Microsoft sur la mise à jour 2 de Visual Studio concernant ces attributs. Cependant, je ne trouve aucune autre information à leur sujet et je ne parviens pas à construire un projet avec eux.
Quelqu'un connaît-il ces attributs ou comment les faire fonctionner?
[DataTestMethod]
[DataRow("a", "b")]
[DataRow(" ", "a")]
public void TestMethod1(string value1, string value2)
{
Assert.AreEqual(value1 + value2, string.Concat(value1, value2));
}
Je sais que c'est une vieille question, mais il y a maintenant une bonne solution publiée sur https://blogs.msmvps.com/bsonnino/2017/03/18/parametrized-tests-with-ms-test/
En un mot, vous devrez installer MSTest.TestFramework
et MSTest.TestAdapter
, et supprimez les références à Microsoft.VisualStudio.QualityTools.UnitTestFramework
. Vous pouvez ensuite indiquer un test paramétré avec le [DataTestMethod]
, et pouvez ajouter vos paramètres à l'aide de [DataRow]
attribut, selon votre exemple. Les valeurs de [DataRow]
l'attribut sera transmis à la méthode de test dans l'ordre dans lequel ils sont spécifiés.
Notez que les valeurs dans [DataRow]
l'attribut doit être primitif, vous ne pouvez donc pas utiliser un DateTime
ou decimal
par exemple. Si vous les voulez, vous devrez contourner cette limitation (par exemple, au lieu d'avoir un paramètre DateTime
pour représenter une date, vous pouvez avoir trois paramètres entiers représentant l'année, le mois et le jour, et créer le DateTime
au sein du corps d'épreuve).
Enfin, cette fonctionnalité a été ajoutée (toujours en pré-version) https://blogs.msdn.Microsoft.com/visualstudioalm/2016/06/17/taking-the-mstest-framework-forward-with- mstest-v2 /
Fondamentalement, il faut faire deux choses:
1) Installez deux packages NuGet (les versions n'ont pas vraiment d'importance, mais c'est ce que j'ai)
<package id="MSTest.TestAdapter" version="1.1.5-preview" targetFramework="net452" />
<package id="MSTest.TestFramework" version="1.0.6-preview" targetFramework="net452" />
2) Supprimez le refenrece de l'ancienne bibliothèque de test, car il a les mêmes attributs définis dans les mêmes espaces de noms - cela a été fait pour obtenir une compatibilité descendante
Microsoft.VisualStudio.QualityTools.UnitTestFramework
Il semble que cela ne soit disponible que dans le projet de test unitaire pour WinRT/Metro et maintenant avec la mise à jour 2, Windows Phone 8. C'est un mystère pour moi que ce n'est pas disponible pour tous les tests avec mstest.