TFS 15 i problem z NUnit3
Sporo problemu ostatnio sprawiła mi konfiguracja serwera budującego Team Foundation Server do jednego z moich projektów. Jednym z najbardziej uciążliwym było przygotowanie Build Definition, która odpowiada za to w jaki sposób program się kompiluje. Co prawda TFS dostarcza już gotowe kroki do budowania solucji czy uruchamiania testów, jednak działają one bezproblemowo tylko i wyłącznie dla domyślnych ustawień. Już parę razy się przejechałem na tym, że jeżeli nie robię czegoś według wizji Microsoft to czekają mnie męczarnie z konfigurowaniem wszystkiego.
Walka z NUnit i TFS
Otóż chciałem w moim projekcie skorzystać z biblioteki NUnit, która udostępnia więcej opcji niż standardowy framework do testowania. Pech chciał, że należy na serwerze budującym zainstalować adapter do testów. Ba! Na każdym agencie należy go zainstalować. To znaczy, że jeżeli mamy więcej maszyn, które mogą nam kompilować kod to należy na każdej zainstalować. To jeszcze byłby mały problem, gdyby TFS go potem widział. Robiłem wszystko wg. instrukcji, szukałem na stackoverflow, podawałem ręcznie ścieżkę do adaptera. I rezultat nadal taki sam.

Jak widać TFS pokazuje tylko warninga, że testy nie są odpalane 😉 Jakby nic wielkiego się nie stało…
TFS do kompilacji wymaga Visual Studio w dowolnej wersji. Jest jeszcze jedna standardowa metoda. Można ustawić flagę /UseVsixExtension, która powoduje, że TFS powinien uruchomić adapter zainstalowany jako rozszerzenie do Visual Studio. No cóż, powinien…
Fuszerka Rozwiązanie
Rozwiązaniem mojego problemu (a raczej obejściem) było dodanie do przynajmniej jednego projektu w każdej solucji Nugeta z NUnit adapterem. Jeżeli mamy projekt z jedną solucja to to rozwiązanie jest OK. Gorzej, gdy mamy wiele solucji i należałoby dodawać do każdej adapter osobno…
Zdaję sobie sprawę, że korzystam z wersji TFS „15” RC1 (2015 !=15) i błędy mogą się pojawić, szczególnie z integracją frameworków. O dziwo wersja Release Candidate jest używalna. Oprócz tego, że mam problem z NUnit i Nugetem to reszta systemu działa sprawnie i nie mogę narzekać.
Mam nadzieję, że zostanie to naprawione lub przynajmniej pojawi się jakaś rozsądna dokumentacja bo nie wykluczam, że coś nie tak skonfigurowałem na agencie budującym. Jednak z tego co widzę to problem u ludzi był nawet we wcześniejszych wersjach TFS. Możliwe, że to nie wina nawet Microsoftu tylko twórców NUnit.
Jeżeli jesteś zainteresowany nową wersją TFS to możesz ją znaleźć pod adresem: https://www.visualstudio.com/en-us/news/releasenotes/tfs15-relnotes