2011-12-05 20 views
21

Estoy intentando averiguar cómo hacer que TeamCity ejecute mis MSTests. He fijado un paso de generación utilizando los siguientes parámetros:¿Cómo hacer que TeamCity ejecute pruebas usando MSTest?

  • Camino a MSTest.exe:% system.MSTest.10.0% archivos de ensamblaje
  • Lista: Proyectos \ Metadude. .Tests \ bin \ Debug \ Metadude. .Test.dll
  • MSTest archivo de configuración de ejecución: Local.testsettings

Sin embargo, cuando se ejecuta este paso, no ejecuta ninguna prueba. Esta es la salida del 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 

he tratado de especificar las pruebas que se ejecute mediante los siguientes:

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

Pero eso no funciona. Parece que no puedo encontrar ninguna documentación en google relacionada con el paso de compilación MSTest en TeamCity.

ACTUALIZACIÓN Bien, soy un idiota. Bueno, eso podría ser un poco duro, pero al ensamblaje de prueba le faltaba una "s" del nombre del ensamblado. Sin embargo, habría sido bueno conseguir algo para ese efecto en el registro de compilación.

+0

@Leslie Hanks ¿Cuál de los pasos en la respuesta resuelve su problema ? – wal

+0

@wal Bueno, tuve un error tipográfico en el nombre de mi ensamblaje. –

+0

También soy un idiota que olvidé una "s" del nombre del ensamblado. Vale la pena verificarlo tres veces :) – TinyRacoon

Respuesta

20

En primer lugar, asegúrese de que el ensamblaje que está tratando de probar existe en esa ubicación.

es decir

su ruta relativa: Proyectos \ Metadude..Tests \ bin \ Debug \ Metadude..Test.dll

Sin embargo yo esperaría algo conectado por el TC si existe el archivo aún no ha. Parece que está ejecutando MSTest sin ningún tipo de argumentos de alguna manera.

Si está seguro de que la ruta es correcta, pruébela sin especificar el archivo .testsettings para ver qué ocurre. Estoy usando MSTest con éxito en TC sin esto (pero puede que lo necesites). La otra cosa que estoy haciendo es diferente que especificar la ruta completa a MSTest.exe, es decir

C: \ Archivos de programa \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ MSTest.exe

en lugar de su variable de '%system.MSTest.10.0%'

no puedo recordar por qué lo hice, pero no habría sido una buena razón (como no funcionó cuando se utiliza su variable)

+0

_Primero, asegúrese de que el ensamblado que está tratando de probar existe en esa ubicación._ Al igual que con @wal, fue el nombre de montaje el que me consiguió. En mi caso, el nombre del ensamblaje difería del nombre del proyecto ... suposiciones. Por cierto: TC/MSTest no registra nada más. – Campey

+0

gracias wal, hizo el truco! – DevDave

+6

Desde Visual Studio 2012 (al menos las versiones express) MsTest.exe se llama 'vstest.console.exe' y se puede encontrar en ' C: \ Archivos de programa (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow \ vstest.console.exe' – dwonisch

Cuestiones relacionadas