2012-01-19 13 views
26

Moje rozwiązanie VS2010 ma projekt testowy. Urządzenie sprawdza się odwoływać następujące nazw:Projekt testu jednostkowego nie budowany z serwera kompilacji

using Microsoft.VisualStudio.TestTools.UnitTesting; 

która jest dostępna za pośrednictwem poniższego montażu na moim komputerze:

Assembly Microsoft.VisualStudio.QualityTools.UnitTestFramework 
    C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ 
    PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 

Kiedy zbudować rozwiązanie na moim komputerze nie mam problemów; testy zostaną zbudowane i uruchomione poprawnie.

Mamy stronę intranetową, której możemy użyć do uruchomienia kompilacji na serwerze kompilacji. Kiedy budować za pośrednictwem tej strony, kompilacja nie powiedzie się z następujących błędów:

Generator.cs(3,17): error CS0234: The type or namespace name 'VisualStudio' 
does not exist in the namespace 'Microsoft' (are you missing an assembly 
reference?) 

Oczywistym problemem jest to, że Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll wspomniano powyżej nie jest obecny na serwerze kompilacji. Myślałem, że zostanie on zainstalowany z VS2010, a ponieważ projekty w moim rozwiązaniu budują cele .NET 4.0, oczekiwałbym, że zostanie on zainstalowany na serwerze kompilacji.

Jaki jest najłatwiejszy sposób rozwiązania tego problemu? Serwer kompilacji jest poza moją jurysdykcją i nie chcę specjalnie rejestrować zadania, aby zainstalować na nim nowe biblioteki.

Odpowiedz

23

.UnitTestFramework.dll znajduje się w folderze C: \ Program Files ... i masz do niego odniesienie.

  1. Utwórz katalog pod kontrolą źródła np. Źródło/Binaries
  2. Kopiowanie wspomniany dll na źródło/Binaries
  3. Usuń odniesienie do .UnitTestFramework.dll z zespołu testów jednostkowych
  4. dodać odwołanie do .UnitTestFramework.dll do montażu badanej jednostki, ale tym razem wybierz dll, który jest teraz pod Źródło/Binaries

Po tym można meldowanie zmiany (upewnij folder źródłowy/Binaries jest sprawdzana w) i zbudować rozwiązanie. Kiedy serwer budujący buduje rozwiązanie, powinien pobrać bibliotekę dll z kontrolki źródłowej.

+0

Nie byłoby problemów z licencjonowaniem tych bibliotek dll, np. mieć swój projekt jako projekt typu open source na przykład Github? –

+6

Wystarczy odpowiedzieć na mój komentarz: Tak, będą problemy z licencjonowaniem - nie będzie to dozwolone: ​​http://social.msdn.microsoft.com/Forums/vstudio/en-US/32384366-b668-4f18-99eb- 9c67f7eef233/redistributing-microsoftvisualstudioqualitytoolsunittestframeworkdll –

+0

Zrobiłem to, co sugeruje odpowiedź. działa na moim komputerze programistycznym (z VS) i naszym serwerze CI (bez VS). Wolałbym, aby biblioteka DLL była pobierana przez NuGet, ale nie mogę tego zrobić. –

10

Konkretna odpowiedź dla mnie i Visual rozwiązania Studio 2010 roku:

  1. Install "testowanego środka 2010" od Visual Studio Agents 2010
  2. Restart systemu Windows
  3. Install Visual Studio 2010 Service Pack 1
  4. Restart systemu Windows
  5. Upewnić Projekty Referencje są aktualizowane tak, aby wskazywały na "Microsoft.VisualStudio.QualityTools.UnitTestFramework" "10.1.0.0", a nie "10.0.0.0".
+1

Należy pamiętać, że Visual Studio Agents 2015 instaluje framework 4.6.1, jeśli Twój serwer go jeszcze nie ma – Hoppe

Powiązane problemy