Ok ce post ici m'a aidé à comprendre ce que je devais faire SANS avoir à ajouter manuellement des éléments à l' .testsettings
le fichier.
Étape 1 - Activer le MME Test DeploymentItem
d'attribut.
Tout d'abord, nous avons besoin d'activer / de permettre à l' DeploymentItem
d'attribut.
Goto TEST -> MODIFIER les PARAMÈTRES de TEST -> paramètres Actifs .. par exemple :: Locale (local.testsettings)
Maintenant goto DÉPLOIEMENT et assurez-vous Activer le Déploiement est coché. (Par défaut, il est désactivé).
Étape 2 - Vérifier les propriétés du Fichier
Maintenant, nous devons nous assurer que le fichier que vous souhaitez utiliser dans le test de l'unité, est configuré pour être copiés dans le répertoire BIN lorsque vous compilez. Seuls les fichiers qui sont dans le répertoire BIN peut être utilisé dans un MS de l'unité de Test de test. Pourquoi? Parce que chaque fois qu'un MS de Test est exécuté, il doit faire une copie des sources ... et cela signifie qu'il fait une copie de l'actuel répertoire BIN fichiers (pour la Configuration actuelle).
Par exemple... Configuration Actuelle est de Débogage (par opposition à la Libération).
Je puis ajouter mon fichier ... (prendre note de la structure de dossier dans le Projet)...
et puis assurez-vous que ce fichier est TOUJOURS copiés dans le répertoire bin lorsque le projet est compilé.
PRO ASTUCE: Copier Toujours, mais toujours copier le fichier source sur le fichier de destination .. même si elles sont identiques. C'est pourquoi je préfère Copier si plus Récent ... mais quelle que soit la flotte votre bateau
Ok mesdames et messieurs - toujours avec moi? Wikid.
Lorsque nous de la compilation, le fichier doit existent aujourd'hui dans le Bin dir....
Étape 3 - Maintenant, utilisez l'attribut DeploymentItem
Ok, maintenant nous pouvons enfin utiliser l' DeploymentItem
d'attribut dans notre code. Lorsque nous faisons cela, ceci dit l'MSTest pour copier le fichier (à partir de l'emplacement relatif par rapport au répertoire bin) à la nouvelle MS répertoire de Test...
[TestMethod]
[DeploymentItem(@"Test Data\100LogEntries.txt", "Test Data")]
public void Parsing100LogFileEntriesReturnsANewParsedLogEntriesWith100Items()
{
// Arrange.
const string fileName = @"Test Data\100LogEntries.txt";
ILogEntryService logEntryService = new PunkBusterLogEntryService();
// Act.
var parsedLogEntries = logEntryService.ParseLogFile(fileName, 0);
// Assert.
Assert.IsNotNull(parsedLogEntries);
Assert.AreEqual(100, parsedLogEntries.LogEntries.Count);
// Snipped the remaining asserts to cut back on wasting your time.
}
Donc permet de briser ce bas..
[TestMethod]
Nous savons tous ce que c'est.
[DeploymentItem(@"Test Data\100LogEntries.txt", "Test Data")]
Départ dans le répertoire bin, aller dans l' Test Data
le dossier et copiez le 100LogEntries.txt
le fichier vers un dossier de destination Test Data
, dans la racine de la MS à la sortie Test de répertoire MS Test crée lors de chaque test est exécuté.
C'est ce que mon dossier de sortie de la structure ressemble. (Excuse tout le désordre...)
et le tour est joué! nous avons des fichiers de déploiement, en programmant.
PRO TIP #2 - si u ne pas utiliser un 2ème argument de chaîne dans l' DeploymentItem
d'attribut, alors le fichier sera copié à la racine du dossier, de l'actuel MS Test.
const string fileName = @"Test Data\100LogEntries.txt";
Maintenant, le chemin d'accès au fichier est relatif à l' OUT
le dossier pour le cours de MS Test. En tant que tel, j'ai explicitement dit à déployer le fichier dans un répertoire appelé Test Data
... donc j'ai besoin de m'assurer de la référence que correctement dans mon code lorsque je veux lire le fichier.
Juste pour confirmer -> le chemin d'accès complet du fichier est traduit à quelque chose comme C:\lots of blah blah blah\My Solution\TestResults\PureKrome_PUREKROME-PC 2011-01-05 23_41_23\Out\Test Data
.. pour que les états membres actuels de Test.
HTH.
Maintenant vous avez une image d'une Licorne, pour la lecture de tant de choses :)