Comment puis-je référencer un fichier de données intégré pour les tests unitaires pilotés par les données?

StackOverflow https://stackoverflow.com/questions/1945863

Question

Ceci est mon scénario, je veux faire un test unitaire piloté par les données, et i étant l'environnement indépendant souhaite intégrer le fichier de données dans mon assemblée. Comment puis-je référencer puis dans le DataSourceAttribute du test unitaire?.

Je suis en train d'accéder à un fichier Excel 2003 à l'aide du fournisseur Microsoft Jet OLEDB. Le test unitaire fonctionne très bien lorsque le fichier est dans le disque dur, mais pas lorsque je tente d'accéder au fichier de montage intégré. Voici mon exemple:

Original

[DeploymentItem ( "IHRM.Infrastructure.EFRepositories.Tests \ DataDriven.xls"), DataSource ( "System.Data.OLEDB", « Provider = Microsoft.Jet.OLEDB.4.0; Data Source = | DataDirectory | \ dicté par les données .xls; Propriétés étendues = \ "Excel 8.0 \" », "Sheet1 $", DataAccessMethod.Sequential), TestMethod]

suggéré

[DataSource ( "System.Data.OLEDB", "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " quoi mettre ici "; Propriétés étendues = \" Excel 8.0 \ "", "Sheet1 $", DataAccessMethod.Sequential), DeploymentItem ( "IHRM.Infrastructure.EFRepositories.Tests \ DataDriven.xls"), TestMethod]

Était-ce utile?

La solution

Je doute que le JET OLEDB a sur le support de boîte pour la connexion à des bases de données à partir d'une des ressources incorporées. Je vois deux options pour contourner ce problème:

1. extraire la ressource

Dans votre test extraire la ressource d'assemblage à un endroit connu . Reportez-vous à cet endroit connu dans la chaîne de connexion JET. Nettoyer à nouveau le fichier extrait dans votre test ClassCleanup .

2. écrire votre propre source de données

peut être en mesure d'écrire votre propre DbProviderFactory qui prend en charge l'accès aux fichiers Excel intégré. Pour faire une telle usine découvrable pour MSTest, vous devrez enregistrer votre usine avec réflecteur et commencez à suivre la piste par dissassembling Microsoft.VisualStudio.TestTools.Utility.TestDataConnection.Create.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top