2011-12-05 12 views
21

Sto cercando di capire come far funzionare TeamCity i miei MSTest. Ho installato un passaggio di generazione utilizzando i seguenti parametri:Come ottenere TeamCity per eseguire test utilizzando MSTest?

  • Path to MSTest.exe:% system.MSTest.10.0% file di assieme
  • Elenco: Projects \ Metadude. .Tests \ bin \ Debug \ Metadude. .Test.dll
  • MSTest file di configurazione di esecuzione: Local.testsettings

Tuttavia quando questo passaggio viene eseguito, non esegue alcun test. Questa è l'uscita dal registro:

[02:13:49]: Step 2/2: Run Unit Tests (MSTest) 
[02:13:49]: [Step 2/2] Starting: "D:\Program Files (x86)\TeamCity\buildAgent\plugins\dotnetPlugin\bin\JetBrains.BuildServer.NUnitLauncher.exe" #TeamCityImplicit 
[02:13:49]: [Step 2/2] in directory: D:\Program Files (x86)\TeamCity\buildAgent\work\1f82da3df0f560b6 
[02:13:50]: [Step 2/2] Microsoft (R) Test Execution Command Line Tool Version 10.0.30319.1 
[02:13:50]: [Step 2/2] Copyright (c) Microsoft Corporation. All rights reserved. 
[02:13:50]: [Step 2/2] 
[02:13:50]: [Step 2/2] Please specify tests to run, or specify the /publish switch to publish results. 
[02:13:50]: [Step 2/2] For switch syntax, type "MSTest /help" 
[02:13:50]: [Step 2/2] Process exited with code 1 
[02:13:50]: Publishing internal artifacts 
[02:13:50]: [Publishing internal artifacts] Sending build.finish.properties.gz file 
[02:13:50]: Build finished 

Ho provato secondo i test eseguito con le seguenti:

  • Test: Tests.Metadude.Core.Extensions.StringExtensionsTests

Ma questo non funziona. Non riesco a trovare alcuna documentazione su google relativa alla fase di sviluppo MSTest in TeamCity.

UPDATE Ok, sono un idiota. Beh, potrebbe essere un po 'duro, ma al gruppo di test mancava una "s" dal nome dell'assemblaggio. Sarebbe stato bello ottenere qualcosa in quell'effetto nel log di costruzione.

+0

@Leslie Hanks Quale dei passaggi della risposta ha risolto il problema ? – wal

+0

@wal Beh, ho avuto un refuso nel mio nome assembly. –

+0

Sono anche un idiota che ha perso una "s" dal nome dell'assemblea. Vale la pena triplo controllo :) – TinyRacoon

risposta

20

In primo luogo, verificare che l'assieme che si sta tentando di test esista in quella posizione.

cioè

vostro percorso relativo: Progetti \ Metadude..Tests \ bin \ Debug \ Metadude..Test.dll

Tuttavia mi sarei aspettato qualcosa di connesso da TC se il vostro non ha ancora il file esiste. Sembra che sia in esecuzione MSTest senza argomenti in qualche modo.

Se si è certi che il percorso sia corretto, provare senza specificare il file .testsettings per vedere cosa succede. Sto usando MSTest con successo in TC senza questo (ma potresti averne bisogno). L'altra cosa che sto facendo è diverso che specificare il percorso completo per MSTest.exe, cioè

C: \ Programmi \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ MSTest.exe

invece di la variabile '%system.MSTest.10.0%'

non riesco a ricordare il motivo per cui ho fatto questo, ma non ci sarebbe stata una buona ragione (come non ha funzionato quando si utilizza la variabile)

+0

_Prima, assicurarsi che l'assembly che si sta tentando di test esista in quella posizione._ Come con @wal, era il nome dell'assembly che mi ha preso. Nel mio caso il nome dell'assembly differiva dal nome del progetto ... ipotesi. BTW: nient'altro viene registrato da TC/MSTest. – Campey

+0

grazie wal, ha fatto il trucco! – DevDave

+6

Dal momento che Visual Studio 2012 (almeno le versioni espresse) MsTest.exe è chiamato 'vstest.console.exe' e può essere trovato in ' C: \ Programmi (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow \ vstest.console.exe' – dwonisch

Problemi correlati