2014-09-04 9 views
5

Wir betreiben einen TeamCity 8.1.4 Buildserver mit VS2013 auf dem Rechner installiert.Build und Test mit TeamCity und Fakes Framework

Ich habe vor kurzem Tests eingeführt, die auf dem Microsoft Fakes Framework beruhen. Aus diesem Grund musste ich einige Referenzen zu den neuen Fake Assemblies und der Microsoft.VisualStudio.TestTools.UnitTesting Assembly hinzufügen. Das läuft alles gut auf meiner lokalen Entwicklungsmaschine.

Nun, wenn ich versuche, die Lösung auf dem Server Teamcity zu bauen, werden die folgenden Fehler ausgelöst:

somedirectory \ Processors \ ProcessorTests.cs (3, 27): Fehler CS0234: Der Typ oder Namespace-Name 'Fakes' existiert nicht im Namensraum 'SomeDirectory.Database' (werden Sie eine Assembly Referenz fehlt?)

somedirectory \ Processors \ ProcessorTests.cs (7, 66): Fehler CS0234: der Typ oder Namespacename 'Fakes' existiert nicht im Namespace 'SomeDirectory.Service.P rocessor.Report.Processors' (fehlen Sie ein Assemblyverweis?)

somedirectory \ Processors \ ProcessorTests.cs (9, 17): Fehler CS0234: Die Typ oder Namespace Name 'QualityTools' existiert nicht in der Namespace ‚Microsoft‘ (möglicherweise fehlt ein Assemblyverweis?)

ich etwas die ersten beiden Fehler verstehen, weil ich nicht die gefälschte Baugruppen in SVN begangen haben, deshalb können sie nicht gefunden werden. Ich möchte diese Dateien auch nicht festschreiben, da der Build-Server diese selbst generieren sollte. Die BuildAction der Fakes-Dateien ist auf Fakes festgelegt.

Meine Vermutung ist, die ersten beiden Fehler haben ihren Ursprung bei dem dritten Fehler erfüllt. Nach meinem Wissen befindet sich der QualityTools Namespace in der Microsoft.VisualStudio.TestTools.UnitTesting Assembly.

Ich habe versucht, dies mit mehreren Einstellungen zu beheben. Der ursprüngliche Erstellungsschritt Ich hatte konfiguriert war:

Runner type = Visual Studio (SLN)

Visual Studio = Microsoft Visual

Studio 2013

ich dies geändert haben zu:

Runner-Typ = MSBuild

MSBuild version = Microsoft-Tools bauen 2013

MSBuild Toolsversion = 12,0

Ich habe auch versucht, die MSBuild Version .NET 4.5 mit Toolsversion 4.0.

Alle diese Einstellungen führen zu den gleichen Fehlern.

Wie Sie verstehen, wird die Lösung im Moment nicht kompiliert, so dass ich nicht sicher sagen kann, ob die Tests ausgeführt werden oder nicht. Ich habe bereits a post gefunden, wie man den Testschritt mit TeamCity konfiguriert, aber das ist der nächste Schritt.

Hat jemand eine Idee, wie man diese Probleme mit TeamCity und VS2013 beheben kann?

bearbeiten

Ich habe bereits überprüft, ob die TestTools.UnitTesting Montage auf dem Dateisystem vorhanden ist. Diese Anordnung vorhanden ist, so sollte dies kein Problem

Edit 2

Oops sein, habe ich die dritte Fehlermeldung falsch verstanden. Ich hätte nach der Microsoft.QualityTools.Testing.Fakes Assembly suchen sollen, weil es besagt, dass es den QualityTools Namespace nicht auflösen kann. Nach Überprüfung des Pfades Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies kann ich bestätigen, dass die DLL nicht im Dateisystem vorhanden ist.

Ich habe es manuell auf den Buildserver kopiert und sehen, was als nächstes passieren wird.

bearbeiten 3

Nachdem der Server Microsoft.QualityTools.Testing.Fakes Montage auf dem Build kopiert zu haben, stellt die Lösung wie ein Zauber. Aber jetzt bin ich empfange die vertrauten

Fehler beim Profiler Weg von COR_PROFILER_PATH und COR_PROFILER Umgebungsvariablen zu lösen.

Ich habe das schon einmal auf einem TFS2012-Server gesehen. Dies bedeutete, dass es nicht mit Shims umgehen konnte und wir mussten auf TFS2013 upgraden.

Ich habe gerade auf dem Buildserver angemeldet und sah die VS2013-Version ist abgelaufen. Das ist vielleicht der Grund, warum es nicht richtig funktioniert. Die installierte VS2012-Installation ist Version 11.0.50727.1, daher ist Update 3 nicht installiert. Ich werde mit meinen Kollegen besprechen, ob dies aktualisiert werden kann. Hoffentlich werden dadurch die Probleme, mit denen ich konfrontiert bin, gelöst.

Gelöst Anscheinend dachte jemand, dass es lustig war, den VS2013 Professional auf dem Buildserver zu installieren. Daher können die Fälschungen nicht ausgeführt werden, da es sich um eine Premium-Funktion handelt. Installierte die Premium-Version und alles funktioniert jetzt wie ein Zauber.

Antwort

2

Fakes wont mit MSTest laufen Sie Sie haben VSTest.Console

Regel (für VS2012 in diesem Fall) es C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe

ist Es befindet sich auch Läufer auf http://confluence.jetbrains.com/display/TW/VSTest.Console+Runner, aber wenn diese nicht funktioniert, Führen Sie die ausführbare Datei "von Hand", hier ist Referenz für die Ausführung vstest.console.exehttp://msdn.microsoft.com/en-us/library/jj155796.aspx.

Wenn Sie VS2013 auf Agent-Maschine installiert haben (Pro-Edition enthält Fälschungen, Express nicht) sollte es gut kompilieren. Haben Sie versucht, den Kauf auf Ihrem Rechner zu überprüfen?

+0

Danke für die Antwort. Ich habe das auch gefunden, wie im ursprünglichen Beitrag erwähnt.Das Tutorial, das ich für den Testschritt befolgte, ist: http://blog.no/2012/09/unit-testing-visual-studio-2012-fakes-in-team-city/ Allerdings habe ich derzeit Probleme mit dem Kompilieren, also führe ich den Testschritt noch nicht durch. –

+0

Haben Sie versucht, clean checkout und rebuild auf Ihrem dev-Rechner, vielleicht einige Dateien arent eingecheckt? –