2009-06-22 12 views
9

Właśnie zaczynam używać VS2008 do pisania procedur przechowywanych w clr dla SQL 2008. Kiedy piszę kod C# jestem przyzwyczajony do posiadania osobnego "Projektu testowego", w którym umieszczałbym wszystkie moje kod testowania jednostkowego, jednak na pierwszy rzut oka wydaje się, że nie mogę mieć tego samego ustawienia z projektem clr sql z procedurami przechowywanymi. "Czuję", jak można to zrobić, i brakuje mi kilku parametrów konfiguracyjnych, ale nie jestem pewien, co to może być.Procedury testowania przechowywanego SQL CLR z projektem testu jednostkowego

Używam

  • Visual Studio 2008
  • MS test
  • MS SQL 2008

Moje wymagania to:

  1. debug procedura przechowywana w wizualnym studyjny debugger
  2. mieć kilka testów jednostkowych w celu przetestowania procedur przechowywanych

Czy ktoś wie jak mogę mieć projekt testowy jednostka prawidłowo Depolimeryzacja procedur przechowywanych na serwerze, połączyć się z serwerem sql i pozwól mi przejść przez test urządzenia do procedur przechowywanych, które znajdują się na serwerze?

**** AKTUALIZACJA ****

Dziękuję wszystkim za odpowiedzi tak daleko, jednak nie są one excatly co szukam.

Mark Seemann's odpowiedź poniżej to interesujące podejście, o którym nie wiedziałem i na pewno skorzystam, jeśli chodzi o zresetowanie mojej bazy danych do znanego stanu. Jednak szukam debugowania procedur przechowywanych CLR, i nie wydaje się, że metoda Marka pozwoli mi przejść od mojego projektu testu jednostkowego, do serwera SQL i debugowania kodu znajdującego się na serwerze.

Szukam debugowania C# na serwerze, podobnie jak opisane poniżej rozwiązanie pho3nix. Jednak używając tego standardowego podejścia, musisz napisać swoje skrypty testowe za pomocą pliku "Test.sql" i nie używać projektu testu jednostkowego z programu Visual Studio.

Mam nadzieję, że mogę mieć dwa projekty w moim rozwiązaniu, jeden dla moich przechowywanych procedur CLR i jeden dla mojego projektu testu jednostkowego. Kiedy chcę uruchomić testy w moim projekcie testów jednostkowych, mam nadzieję, że wszystkie zmiany wprowadzone do mojego projektu procedury przechowywanej CLR zostaną opublikowane na serwerze, projekt testowy rozpocznie wykonywanie, a jeśli ustawię punkt przerwania w CLR procedura składowana, gdy test jednostki rozpocznie testowanie tej procedury przechowywanej, która zostanie przerwana na serwerze, a następnie będę mógł przejść przez ten kod.

Najbliższe rozwiązanie, które znalazłem do tej pory, to Alex Kuznetsov and Alex Styler, jednak za pomocą tego rozwiązania nie mogę przejść do serwera SQL.

**** UPDATE 2 ****

To jest bardziej „wpadać” na to pytanie przyniesie z powrotem do góry ... Ja nadal nie miał szczęścia wstępnej do serwera SQL z jednostki testy. Jakieś inne myśli?

Odpowiedz

2

Musisz włączyć debugowanie SQL/CLR na połączeniu, zanim będzie można debugować kod. w tym celu należy postępować zgodnie z instrukcjami tutaj http://msdn.microsoft.com/en-us/library/ms165039(VS.80).aspx

Należy pamiętać, że podczas debugowania C# SP, wszystkie zarządzanych wątków w serwerze SQL zawiesza podczas debugowania

nadzieję, że to pomaga.

1

I wrote pretty extensively on this subject jakiś czas temu. Zawsze wdrażam moje komponenty dostępu do danych w sposób TDD. Spójrz na wpis w linku - sam artykuł może nie zapewniać najlepszego przeglądu, ale możesz również pobrać przykładowy kod i obejrzeć go we własnym wolnym czasie.

Uważam, że spełnia wszystkie Państwa wymagania.

2

Po utworzeniu projektu mam węzeł drzewa z bazą danych i element o nazwie Projekt SQL Server.

alt text http://img514.imageshack.us/img514/8523/81345560.jpg

Następny kiedy tworzony jest szablon projektu i dostać Skrypty testowe (Test.sql), gdzie można przetestować wszystkie moje zajęcia SQL Server CLR, używając wspólnych procedur i poleceń SQL.

alt text http://img17.imageshack.us/img17/7826/38591345.jpg

Z tego można mieć interfejs rozwoju dla CLR z debugowania. Test.sql jest jak klasa jednostek dla klas CLR.

PS. Nie zapomnij o aktywnym CLR w konfiguracji serwera SQL.

Powiązane problemy