Comment obtenir le chemin d'accès de projet de projet de test?

J'ai un projet de tests unitaires définis dans la même solution que mon projet dans Visual Studio. L'unité de contrôle est fait par construit dans l'Unité de Test des outils dans Visual Studio (inclus dans la Prime et les versions ci-dessus). J'ai besoin de charger un fichier qui est dans le chemin d'accès du projet lui-même, et non pas le projet de test, lors de l'exécution des tests unitaires dans le projet de test.

Le fichier à inclure est la partie de l'objectif principal du projet, et a les propriétés suivantes:

  • Action De Génération: Le Contenu
  • Copie vers le Répertoire de Sortie: Toujours

J'ai besoin d'écrire un test unitaire que pour une fonction qui dépend de ce fichier, ou je vais frapper un état d'erreur et ne sera pas en mesure d'écrire des tests pour une couverture de 100% sur cette fonction.

Comment aurais-je obtenir le chemin d'exécution de projet à partir de l'unité de projet de test?

Edit: La fonction spécifique lit toutes les lignes dans le fichier de configuration et les magasins un par un dans une liste. Exemple de code suivant:

public List<string> LoadConfigFile() {
    List<string> models = new List<string>();
    StreamReader sr = new StreamReader(Path.GetDirectoryName(Application.ExecutablePath) + @"\" + Properties.Resources.SupportedModelsConfigFile);

    while ((line = sr.ReadLine()) != null)
    {
        models.Add(line);
    }

    sr.Close();
    return models;
}

Principal Problème: L'Application.ExecutablePath fonctionne très bien lors de l'exécution du programme à l'intérieur ou à l'extérieur de l'IDE, mais lors de l'exécution des tests unitaires, il m'envoie un répertoire au sein de visual studio, précisément ce répertoire:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\QTAgent32.exe
Que faites-vous avec le fichier?
aussi, si vous avez le code déjà écrit peut-être coller le code serait une bonne idée et de commentaires dans le code où vous rencontrez des problèmes le cas échéant, et où dans le code que vous voulez exécuter ou d'ajouter des fonctionnalités supplémentaires...

OriginalL'auteur ford | 2012-01-05