Problem: montaż SQLite odwoływać w moim zespole DAL nie zostanie skopiowany do folderu wyjściowego podczas wykonywania testów jednostkowych (kopia lokalna jest ustawiona na true
).SQLite montaż nie zostały skopiowane do folderu wyjściowego dla testów jednostkowych
Pracuję na aplikacji .Net 3.5 w VS2008, z NHibernate & SQLite w moim DAL. Dostęp do danych jest udostępniany przez interfejs IRepository (fabryka repozytoriów) innym warstwom, więc nie ma potrzeby odwoływania się do zespołów NHibernate
lub System.Data.SQLite
w innych warstwach.
Do testowania jednostkowego istnieje publiczna metoda fabryczna (również w moim DAL), która tworzy sesję SQLite w pamięci i tworzy nową implementację IRepository. Ma to również na celu uniknięcie wspólnej konfiguracji SQLite w pamięci dla wszystkich złożeń, które tego potrzebują, oraz unikanie odwoływania się do tych wewnętrznych zespołów DAL.
Problem polega na tym, że przeprowadzam testy jednostkowe, które znajdują się w oddzielnym projekcie - jeśli nie dodaję System.Data.SQLite
jako odniesienia do projektu testu jednostkowego, nie zostanie on skopiowany do folderu TestResults ... \ Out (chociaż ten projekt odwołuje się do mojego projektu DAL, który odwołuje się do System.Data.SQLite
, który ma właściwość Local Copy ustawioną na true
), więc testy kończą się niepowodzeniem podczas konfigurowania NHibernate. Jeśli dodaję odwołanie do mojego projektu testowego, to zostanie ono skopiowane, a testy jednostkowe działają.
Co robię źle?
[Aktualizacja]
Wydaje Znalazłem odpowiedź tutaj: TFS UnitTesting not deploying local copy assembly to test dir when on build server. Jeśli dodaję odwołanie do tego typu w jakiejś statycznej metodzie w moim DAL, zostanie ono automatycznie skopiowane, gdy odwołam się do zestawu DAL w moich testach. To wygląda na włamanie, ale IMHO jest czystszym rozwiązaniem niż posiadanie osobnego skryptu, ponieważ tworzy "prawdziwą" zależność.
Wygląda na to, że zostanie również skopiowany, jeśli dodaję zespół SQLite jako dodatkowy element do mojej konfiguracji testu testowego (plik LocalTestRun.testrunconfig).
Dzięki za szybkie odpowiedzi!
Lub możesz dodać go do swojego skryptu kompilacji typu Nant lub równoważnego, aby skopiować wymagane zestawy jako etap poprzedzający test. – Gishu
Dzięki, ale naprawdę chciałbym uniknąć odniesienia określonego zestawu danych w moich testach warstwy biznesowej, to po prostu nie jest w porządku. – Groo
Nie martwiłbym się zbytnio o to, jakie zespoły testuje odniesienie. –