2

J'ai des fichiers de tableur XML créés à partir d'Excel que je dois utiliser comme entrée pour mon test piloté par les données. Je ne peux pas utiliser l'attribut DataSource sur ma méthode de test en raison d'incohérences analysant les fichiers avec un fournisseur Oledb. Je me demandais s'il y avait un moyen d'avoir des résultats de test imbriqués comme la façon dont l'attribut DataSource le fait?Custom Data Driven MSTest

Je préférerais que MSTest affiche la répartition de chaque ligne qui a été réitérée plutôt que d'intercepter une exception d'assertion ayant échoué et de conserver une collection des échecs. Je veux bien sûr que le test s'exécute contre chaque ligne et ne cesse pas de s'exécuter lors de la première assertion échouée.

Je ne cherche pas de réponses qui insistent pour charger les données via l'attribut DataSource. Merci

Répondre

3
  1. Utilisez le DeploymentItem sur chacun de vos TestMethods pour déployer le fichier tableur XML que chaque test a besoin. Il sera déployé dans l'emplacement de l'Assemblée.

  2. Dans la méthode TestInitilize, utilisez le chemin de l'Assemby pour analyser votre fichier sur votre DataSource personnalisé (peut-être une liste d'objets de vos données d'entrée). Mettez le code de TestMethod dans un bloc try/catch. Si une exception est générée, signalez l'erreur à l'aide de la méthode TestContext.WriteLine ou ajoutez-la dans votre fichier de résultats personnalisé (comme this). Utilisez un compteur de niveau de classe et, à la fin de chaque TestMethod, vérifiez si le compteur correspond à la longueur de votre source de données personnalisée. Sinon, augmentez-le de un et relancez le test.

+0

@ryan Si vous avez besoin de plus d'aide, je peux vous fournir du code. – Schaliasos