2012-01-05 21 views
9

Mam projekt jednostki testowej ustawiony w tym samym rozwiązaniu, co mój projekt w Visual Studio. Testowanie jednostek odbywa się za pomocą wbudowanych narzędzi do testowania jednostkowego w Visual Studio (zawartych w wersjach Premium i wyższych). Potrzebuję załadować plik, który znajduje się na ścieżce samego projektu, a nie projekt testowy, podczas uruchamiania testów jednostkowych w projekcie testowym.Jak uzyskać ścieżkę projektu z projektu testowego?

Plik obejmować jest częścią głównego projektu, i ma następujące właściwości:

  • Konstruowanie Działanie: zawartość
  • Kopiuj do wyjścia katalogu: Zawsze

muszę napisać test jednostkowy dla funkcji, która zależy od tego pliku, albo trafię w stan błędu i nie będę mógł napisać testów dla 100% pokrycia dla tej funkcji.

Jak uzyskać ścieżkę wykonania rzeczywistego projektu z projektu testu jednostkowego?

Edytuj: Określona funkcja odczytuje wszystkie wiersze w pliku konfiguracyjnym i przechowuje je pojedynczo na liście. Przykładowy kod w następujący sposób:

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; 
} 

Podstawowy problem: Application.ExecutablePath działa poprawnie, gdy uruchomiony program wewnątrz lub na zewnątrz IDE, ale podczas uruchamiania testów jednostkowych, wysyła mnie do katalogu w visual studio, a konkretnie tego katalogu:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\QTAgent32.exe 
+0

Co robisz z pliku? –

+0

również, jeśli masz już napisany kod, być może wklejenie kodu byłoby dobrym pomysłem i komentarzem w tym kodzie, w którym występują problemy, jeśli takie istnieją i gdzie w tym kodzie chcesz wykonać lub dodać dodatkową funkcjonalność ... – MethodMan

Odpowiedz

13

można ustawić zmienną aby uzyskać ścieżkę gdzie aplikacja jest uruchomiona z

var execPath = AppDomain.CurrentDomain.BaseDirectory; 
+0

To dało mi do poprawnej ścieżki do folderu. Dodatkowo, musiałem dołączyć mój plik konfiguracyjny do wdrożenia (Test -> Edytuj ustawienia testu -> local.test, kliknij Wdrożenie i dodaj odpowiedni plik.) To spowoduje dodanie plików zewnętrznych do folderu wyników testu Studio używa podczas testów jednostkowych: – ford

+0

Czy zastanawiałeś/-łaś się nad wykorzystaniem pliku zasobów – MethodMan

+0

Użyłem plików zasobów gdzie indziej, ale w tym przypadku nie było to odpowiednie – ford

Powiązane problemy