2017-01-31 10 views
8

Obecnie uruchamiamy sesję OpenCover, na której działa plik nunit3.console.exe.Zwiększ prędkość openCover

Nasza linia poleceń jest następująca:

"C:\Program Files (x86)\OpenCover\OpenCover.Console.exe" -output:"%CD%\opencover.xml" -register:user -target:"C:\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe" -targetargs:"Solution\our-solution-file.sln --config=Debug --result=%CD%\TestResult.xml;format=nunit2" 
exit 0 

Spodziewaliśmy się, że jest wolniejszy niż nasze normalne testów jednostkowych ze względu na oprzyrządowanie pomiędzy, ale nie tak dużo.

Bez zasięgu kodu testy jednostkowe trwają około 1 godziny. A obecnie, z zasięgiem kodu, spędziliśmy już 3 dni i 23 godziny, i uważamy, że wykonaliśmy tylko mniej 10%.

Te wyniki należy wyeksportować do SonarQube po.

Czy jest coś, co możemy zrobić, aby zwiększyć prędkość (z wyjątkiem uaktualnienia komputera z testem, który prawdopodobnie zostanie wykonany)?

Czy masz mniej szczegółowe wyniki, ...? Najbardziej interesuje nas zasięg kodu, czas trwania i inne rzeczy nie są dla nas zbyt interesujące. Lub nawet przy użyciu innego narzędzia niż OpenCover.

Nie wiem, czy to ma znaczenie, ale ta linia jest wykonywana przez jenkins.

+0

Zahamowanie 60x jest wręcz śmieszne. Ale ta odpowiedź SO sugeruje, że jest to właściwość OpenCover: http://stackoverflow.com/a/26225013/120163 Uwaga na temat używania wątków i kolejek jest dość zaskakująca; są to bardzo powolne mechanizmy, jeśli są częścią runtime narzędzia. Spodziewałbym się, że dobre narzędzie pokrycia testowego doda dodatkowe 15-20% do wykonania. . Narzędzia Semantic Designs (moja firma) mają tę właściwość. (Zobacz bio). –

Odpowiedz

2

Próbując pewne rzeczy zrobiłem zauważyć ogromną poprawę:

mogę wykluczyć prób zespołów przyrządów openCover, a teraz występy są dość ładne:

  • 1h06 tylko UnitTests + SonarQube

  • 1h38 z OpenCover + UnitTests + SonarQube

Jest to całkiem do przyjęcia dla nas.

Nawiasem mówiąc, jak to zrobiłem filtr:

"C:\Program Files (x86)\OpenCover\OpenCover.Console.exe" -filter:"[*]* -[*.Test]*" -output:"%CD%\opencover.xml" -register:user -target:"C:\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe" -targetargs:"Solution\our-solution-file.sln --config=Debug --result=%CD%\TestResult.xml;format=nunit2" 
exit 0 
+0

Cóż, nie jestem pewien, co jest nie tak, ale teraz ta sama linia poleceń znowu trwa wiecznie, może raz dostałem więcej zasobów ze względu na fakt, że jest na VM. – J4N