2009-10-14 16 views
14

Z przyczyn, których nie uwzględnię, wszystkie nasze testy jednostkowe wykorzystują framework testowy VSTS. Teraz chcę utworzyć skrypt MSBuild, który uruchamia testy, ale nie chcę używać mstest.exe z różnych powodów (jest wolniejszy, wymaga instalacji Visual Studio wszędzie, muszę zachować testrunconfig, itp.)Uruchamianie testów VSTS bez pliku mstest.exe

Widziałem, że TestDriven.net i TeamCity są w stanie uruchomić "NUnitowy styl testów VSTS", bez użycia mstest.exe. Czy wiesz o jakimkolwiek autonomicznym narzędziu wiersza poleceń, które to robi?

+0

To również było dla mnie irytujące, więc zgłosiłem to jako "głos użytkownika". Jeśli to czytasz i czujesz się mocno, możesz głosować na to? https: //visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/4619858-mstest-api –

Odpowiedz

19

można wykonać testy systemu Team (MSTest) w NUnit jeśli użyć specjalnego NUnit Addin który rozpoznaje atrybutów test MS (TestClass, etc).

Oprogramowanie Exact Magic Software ma funkcję open-source "test-adapter", która może to zrobić.

AKTUALIZACJA: Przerobiłem adapter MSTs NUnit firmy Exact Magic dla NUnit 2.5.2.

+1

Wygląda na to, że tego właśnie szukam, tylko że nie działa z najnowszą wersją NUnit (2.5.2). Próbowałem wersji, na której ma działać (2.4.6), ale wygląda na to, że nie będzie działać na moim systemie (Windows 7). –

+0

Często dodatki NUnit są powiązane z ramami, w których zostały skompilowane. Ma związek ze sposobem, w jaki NUnit i addin rozwiązują zależności. Jeśli udostępniają źródło, powinieneś mieć możliwość rekompilacji ze zaktualizowanym plikiem referencyjnym. Przy założeniu, że nie robią czegoś konkretnego z zespołami rdzenia 2.4.6, chociaż w większości interfejsów rdzenia niewiele się zmieniło. Jeśli znajdę czas, mogę dać temu szansę. – bryanbcook

+0

Zacząłem zaglądać w to, wygląda na to, że wprowadzono kilka przełomowych zmian w wersji 2.5.2, więc aby adapter działał, potrzebowałoby trochę refaktoryzacji. –

0

Możliwe jest uruchamianie MSTests bez instalowania Visual Studio. Zobacz how-do-i-use-mstest-without-visual-studio.

Zrobiłem to, abym mógł uruchomić moje testy w ramach procesu CI. (Używam CC.NET dla mojego rozwiązania CI).


Jestem w podobnej sytuacji jak ty, ponieważ chcę korzystać z TestDriven.NET, aby uzyskać statystyki zasięgu kodu. Ale mam problemy. Mój pierwszy problem polega na tym, że używam atrybutów AssemblyInitialize, aby zainicjować połączenie z bazą danych. Nie jest to obsługiwane przez NUnit, więc około połowa moich testów kończy się niepowodzeniem, podczas gdy działają poprawnie w MSTest.

Wygląda więc na to, że tłumaczenie testów z jednego szkieletu testowego na inny ma pułapki. Jeśli jesteś tego świadomy, idź naprzód, ale lepiej będzie zachować spójność w ramach jednego testu.

+0

Dzięki, jestem świadomy możliwości uruchomienia mstest.exe poza VS, ale nie chcę używać MSTest w ogóle, ponieważ jego wiele problemów. –

+0

Okay - więc czy możesz całkowicie zrezygnować z MSTest? Konwertuj wszystkie swoje testy na NUnit? Wydaje się, że mieszane środowisko testowe jest gorsze od samego MSTest. – quip

1

Wygląda na to, że TeamCity po prostu używa numeru Gallio do uruchamiania testów VS. Galijo wydaje się mieć integrację msbuild i dźwięki idealne, ale po bliżej spojrzeć wydaje się, że będzie to wymagało VS zainstalować tak jak MSTest jak wydaje się zależeć od MS exes:

The plugin enable condition was not satisfied: '${process:DEVENV.EXE} or 
${process:VSTESTHOST.EXE} or 
${process:QTAGENT.EXE} or 
${process:QTAGENT32.EXE} or 
${process:QTDCAGENT.EXE} or 
${process:QTDCAGENT32.EXE}'. 
Host process exited with code: 0 

powiedział, że jest to brzmi co najmniej jedna osoba ma to działa:

Christoph De Baene - Running MSTest without Visual Studio

0

Prowadzimy VSTS testuje za pomocą msbuild TestToolsTask na serwerze Cruise sterowania. To nie używa pliku wykonywalnego MSTEST - warunku, o który prosisz - ale używa różnych zależności TFS.

Należy zauważyć, że przeprowadzamy testy z testowania VSTS dla NUnit, głównie dlatego, że możemy tworzyć rozszerzenia dla NUnit w celu wykonywania przydatnych zadań.

Powiązane problemy