2017-01-31 4 views
8

Wir führen derzeit eine OpenCover-Sitzung aus, auf der die Datei "nunit3.console.exe" ausgeführt wird.Verbesserte Geschwindigkeit openCover

Unsere Befehlszeile ist der folgende:

"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 

Wir erwarten dies als unser normaler Unit-Test, langsamer sein aufgrund der Instrumentierung dazwischen, aber nicht so viel.

Ohne Codeabdeckung dauert der Komponententest ungefähr 1h. Und derzeit, mit der Code-Abdeckung, haben wir bereits 3 Tage und 23 Stunden verbracht, und wir denken, dass wir nur weniger 10% ausgeführt haben.

Diese Ergebnisse sollten nach SonarQube exportiert werden.

Gibt es etwas, was wir tun können, um die Geschwindigkeit zu verbessern (außer den Computer zu aktualisieren, der den Test ausführt, was wahrscheinlich sowieso gemacht wird)?

Wie weniger detaillierte Ergebnisse, ...? Uns interessiert vor allem die Code-Coverage, die Dauer und andere Sachen sind für uns nicht sehr interessant. Oder sogar ein anderes Werkzeug als OpenCover verwenden.

Ich weiß nicht, ob das wichtig ist, aber diese Zeile wird von Jenkins ausgeführt.

+0

Eine Verlangsamung von 60x ist geradezu lächerlich. Aber diese SO-Antwort legt nahe, dass es eine Eigenschaft von OpenCover ist: http://StackOverflow.com/a/26225013/120163 Die Bemerkung über die Verwendung von Threads und Warteschlangen ist ziemlich überraschend; Diese Mechanismen sind sehr langsam, wenn sie Teil des Laufzeitkerns des Tools sind. Ich würde erwarten, dass ein gutes Test-Coverage-Tool 15 bis 20% zusätzlichen Overhead zur Ausführung hinzufügt. . Werkzeuge für semantische Designs (meine Firma) haben diese Eigenschaft. (Siehe Bio). –

Antwort

2

Durch einige Dinge ich versucht, eine große Verbesserung feststellen, tat

ich die Tests Baugruppen der openCover Instrumentierung ausgeschlossen, und jetzt sind die Leistungen ganz nett:

  • 1H06 nur mit Unittests + Sonarqube

  • 1h38 mit OpenCover + + Unittests Sonarqube

Das ist für uns durchaus akzeptabel.

By the way, wie ich Filter tat:

"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

Nun, ich bin nicht sicher, was falsch ist, aber jetzt die gleiche Befehlszeile dauert wieder für immer, vielleicht habe ich mehr Ressourcen einmal aufgrund der Tatsache, dass es auf einer VM ist. – J4N

Verwandte Themen