2008-08-21 15 views
7

Czy ktoś ma jakieś problemy z pobieraniem MSTest do prawidłowego skopiowania pliku hibernate.cfg.xml do katalogu wyjściowego? Wszystkie moje MSTests kończy się niepowodzeniem z nie można znaleźć błędu hibernate.cfg.xml (Mam go ustawić na Copy Always), ale moje testy MBUnit przekazują.MSTest i NHibernate

Odpowiedz

12

Możesz spróbować dodać DeploymentItemAttribute do jednego ze swoich testów lub edytować plik .testrunconfig i dodać plik do listy Deployment.

1

rozwiązanie, a nie odpowiedź: NHibernate obsługuje programmatic configuration. więc możesz napisać swój własny plik właściwości/config i przeanalizować go w konfiguracji hibernacji przy starcie.

2

Zrobiłem to samo kilka tygodni temu - tak naprawdę jest to bug with MSTest - Wierzę, że zostało to poprawione ostatnim Service Pack Release (mimo że nadal mówi "Aktywny"). Jeśli nie, to wszystko, co musiałem zrobić, to odwołać się bezpośrednio do mojego pliku hibernate.cfg.xml (niechlujny, ale działa w celu testowania - odwołuje się do pliku hibernate.cfg.xml w moim projekcie testowym z folderu "TestResults"):

try 
      { 
       sessionFactory = new Configuration() 
        .Configure() 
        .BuildSessionFactory(); 
      } 
      // Assume we are in "MSTest mode" 
      catch (Exception) 
      { 
       sessionFactory = new Configuration() 
        .Configure(@"..\..\..\Program.Tests\" + @"\hibernate.cfg.xml") 
        .BuildSessionFactory(); 
      } 
1

Lubię oznaczać moje pliki konfiguracyjne NHibernate jako Zasoby osadzone i używać przeciążenia Configuration.Configure(), który odczytuje pliki konfiguracyjne z zasobów zespołu.

4

Edytuj plik localtestrun.testrunconfig (w folderze z elementami rozwiązania). Wybierz opcję wdrażania i dodaj plik hibernate.cfg.xml do listy dodatkowych plików do wdrożenia. Plik powinien następnie zostać skopiowany do katalogu wyjściowego, w którym test zostanie uruchomiony.