2016-07-26 15 views
1

Gibt es eine Möglichkeit, automatisierte Tests und kontinuierliche Integration von C# - und WPF-Projekten durchzuführen? Ich dachte über etwas wie Jenkins nach, aber soweit ich weiß, unterstützt Jenkins keine C# -Projekte. Es sollte ein Werkzeug sein, um eine testgetriebene Entwicklung mit der Möglichkeit eines automatisierten Testens auch für die GUI durchzuführen. Vielleicht ist das Build-Tool-Formular gitlab eine Option?Automatisiertes Testen und kontinuierliche Integration von C#, WPF-Projekt

Vielen Dank im Voraus!

+1

Sie können MSBuild mit Jenkins einrichten. Siehe diesen Artikel http://blog.couchbase.com/2016/january/continuous-deployment-with-jenkins-and-.net – Sanket

+1

Sie können MSBuild zusammen mit Bamboo auch verwenden. Bamboo hat ein Plugin zur Verfügung. – Maverick

+1

Wie für CI-Server funktioniert TeamCity großartig. Wenn Sie einen CodedUI-Test für WPF-Steuerelemente und -Fenster ausführen möchten, müssen Sie sich MS-Testtools ansehen und diese im UI-fähigen Modus konfigurieren. –

Antwort

1

Wir verwenden Jenkins mit unseren C# -Projekten. Sie können die MSBuild-Plugin verwenden, um die Projekte zu erstellen, oder ein „Windows Batch Command“ verwenden wie

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" YourSolution.sln /tv:4.0 /p:Configuration=Release /p:TreatWarningsAsErrors="true" /p:CheckForOverflowUnderflow="true" /p:WarningLevel=4 /v:m /t:rebuild 

Hinweis: Mit dieser Befehlszeile ich projektspezifische Einstellungen für Warnungen und arithmetischen Überlauf überschreibt.

Es gibt auch Plugins für Komponententests. Wir verwenden MSTest. Da ich den OpenCover Code Coverage Report Generator integriert, muß ich eine lange Befehlszeile verwenden:

"C:\Program Files (x86)\OpenCover\OpenCover.Console.exe" "-target:C:\vs\Common7\IDE\MSTest.exe" "-targetargs:/nologo /testcontainer:Tests\Project1Tests.dll /testcontainer:Tests\Project2Tests.dll /resultsfile:testresult.trx /category:"^!SqlTests^&^!Perfomance"" -output:coverage.xml 
"C:\Program Files (x86)\OpenCover\OpenCoverToCoberturaConverter.exe" -input:coverage.xml -output:outputCobertura.xml -sources:%WORKSPACE% 
"C:\Program Files (x86)\ReportGenerator\ReportGenerator.exe" -reports:coverage.xml -targetDir:CodeCoverageHTML 

Leider hat man mstest nicht Wildcards für die Testprojekte übernehmen, so dass Sie mit einer schrecklich langen Schlange am Ende. Beachten Sie auch, dass die obige Befehlszeile die Testkategorien "SqlTests" und "Performance" ausschließt. Dann wird die Ausgabe in ein Format konvertiert, das von anderen Plugins akzeptiert wird.

Sie können einige virtuelle Maschinen nach dem Build und dem Gerät testen, und installieren Sie dort Ihre Programme von einigen Skripten mit einigen Testdaten und einige automatisierte Tests des Systems.

Für die eigentliche GUI haben wir noch keine Teststrategie.

1

Es gibt viele Optionen zur Auswahl, wenn Sie MS-Test verwenden möchten. Andernfalls müssen Sie überprüfen, ob der Serviceanbieter xUnit Runner oder andere ähnliche Testframeworks unterstützen kann, die in Ihrer Lösung verwendet werden könnten.

  1. TFS/VisualStudio Online
  2. TeamCity
  3. Jekings with MSBuild
  4. Bamboo
  5. Appveyor

Für UI-Automatisierung können Sie White Framework überprüfen. Es ist meiner Meinung nach das schönste, wenn man es mit Funktionen und Benutzerfreundlichkeit vergleicht.