2014-09-04 13 views
5

Stiamo eseguendo un buildserver di TeamCity 8.1.4 con VS2013 installato sulla macchina.Creazione e test con TeamCity e Fakes Framework

Ho recentemente introdotto test che si basano su Microsoft Fakes Framework. Per questo motivo ho dovuto aggiungere alcuni riferimenti ai nuovi assemblaggi di Fake e all'assemblaggio Microsoft.VisualStudio.TestTools.UnitTesting. Tutto funziona perfettamente sul mio computer di sviluppo locale.

Ora, quando cerco di creare la soluzione sul server TeamCity, i seguenti errori vengono gettati:

somedirectory \ Processor \ ProcessorTests.cs (3, 27): l'errore CS0234: il tipo o nome del namespace 'falsi' non esiste nello spazio dei nomi 'SomeDirectory.Database' (vi manca un riferimento all'assembly?)

somedirectory \ Processor \ ProcessorTests.cs (7, 66): l'errore CS0234: il tipo o nome namespace 'Fakes' non esiste nel namespace 'SomeDirectory.Service.P rocessor.Report.Processors' (Vi manca un riferimento all'assembly?)

somedirectory \ Processor \ ProcessorTests.cs (9, 17): l'errore CS0234: I tipo o spazio name 'non esiste QualityTools' nella namespace 'Microsoft' (vi manca un riferimento all'assembly?)

ho un po 'a capire i primi due errori, perché non ho commesso assemblee falsi in SVN, quindi non possono essere trovati. Inoltre, non voglio impegnare questi file, perché il server di generazione dovrebbe generare questi da solo. Lo BuildAction dei file falsi è impostato su Fakes.

La mia ipotesi è che i primi due errori siano stati soddisfatti dal terzo errore. Per quanto ne so, lo spazio dei nomi QualityTools risiede nell'assemblaggio Microsoft.VisualStudio.TestTools.UnitTesting.

Ho provato a risolvere questo problema con diverse impostazioni. Il passaggio di generazione originale che avevo configurato era:

tipo Runner = Visual Studio (SLN)

Visual Studio = Microsoft Visual

Studio 2013

ho cambiato questo a:

Tipo di canale = MSBuild

MSBuild version = Microsoft creare strumenti 2013

MSBuild ToolsVersion = 12,0

Ho anche provato la versione MSBuild .NET 4.5 con ToolsVersion 4.0.

Tutte queste impostazioni generano gli stessi errori.

Come potete capire, la soluzione non verrà compilata al momento, quindi non posso dire con certezza se i test verranno eseguiti o meno. Ho già trovato a post su come configurare il passaggio di prova con TeamCity, ma questo è il passaggio successivo.

Qualcuno ha un'idea su come risolvere questi problemi con TeamCity e VS2013?

Modifica

Ho già controllato se l'assemblea TestTools.UnitTesting esiste sul filesystem. Questa assemblea è presente, quindi questo non dovrebbe essere un problema

Edit 2

Ops, ho letto male il terzo messaggio di errore. Avrei dovuto cercare l'assembly Microsoft.QualityTools.Testing.Fakes perché dice che non è possibile risolvere lo spazio dei nomi QualityTools. Dopo aver controllato il percorso Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies posso confermare che la dll non è presente sul filesystem.

L'ho copiato manualmente sul buildserver e vedo cosa succederà dopo.

Edit 3

Dopo aver copiato l'assemblaggio Microsoft.QualityTools.Testing.Fakes al server di build, la soluzione compila come un fascino. Tuttavia, ora sto ricevendo il familiare

Impossibile risolvere il percorso profiler da COR_PROFILER_PATH e variabili d'ambiente COR_PROFILER.

Ho visto questo prima su un server TFS2012. Ciò significava che non era in grado di gestire gli shim e che dovevamo eseguire l'aggiornamento a TFS2013.

Ho appena effettuato l'accesso sul buildserver e ho visto la versione VS2013 scaduta. Questa è forse la ragione per cui non funziona correttamente. L'installazione VS2012 installata è la versione 11.0.50727.1, quindi l'aggiornamento 3 non è installato. Discuterò con i miei colleghi se questo può essere aggiornato. Spero che questo risolva i problemi che sto affrontando con i falsi e gli spessori.

risolto Apparentemente qualcuno ha pensato che fosse divertente installare VS2013 Professional sul buildserver. Pertanto i falsi non possono essere eseguiti, in quanto è una funzione Premium. Installato la versione Premium e tutto funziona come un fascino ora.

risposta

2

Falsi wont correre con MSTest dovete voi VSTest.Console

solito (per VS2012 in questo caso) si trova C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe

C'è anche corridore accessibile http://confluence.jetbrains.com/display/TW/VSTest.Console+Runner, ma se questo non funziona, eseguire l'eseguibile "a mano", qui è il riferimento per l'esecuzione di vstest.console.exehttp://msdn.microsoft.com/en-us/library/jj155796.aspx.

Se VS2013 è installato sul computer dell'agente (la versione Pro contiene i falsi, Express non lo è), deve essere compilato correttamente. Hai provato la cassa pulita sulla tua macchina dev?

+0

Grazie per la risposta. Ho trovato anche questo, come menzionato nel post originale.Il tutorial che ho seguito per la fase di test è: http://blog.degree.no/2012/09/unit-testing-visual-studio-2012-fakes-in-team-city/ Tuttavia, al momento sto riscontrando problemi con la compilazione, quindi non sto ancora eseguendo il test. –

+0

Hai provato a eseguire il checkout e la ricostruzione sulla tua macchina di sviluppo, forse alcuni file non sono stati archiviati? –