visual temas studio para mejores linea las iconos extensiones espaƱol ejecutar configurar code ajuste visual-studio mstest

visual-studio - mejores - temas para visual studio code



Archivo de copia MSTest para probar la carpeta de ejecuciĆ³n (6)

Tengo una prueba que requiere un archivo XML para leer y luego analizar. ¿Cómo puedo tener este archivo copiado en la carpeta de ejecución de prueba cada vez?

El archivo XML está configurado en "Copiar si es más reciente" y en un modo de compilación de "ninguno" (ya que no es realmente una cosa compilable)


En Visual Studio 2012, vstest.console.exe (el runner de prueba incorporado) se ejecuta con el dir de salida como la ruta actual. Esto significa que solo necesita incluir los elementos en su solución con la propiedad ''Copiar siempre'' o ''Copiar si es más reciente'' para que la prueba los use. No necesita el atributo DeploymentItem para el caso general. Lo mismo se aplica cuando se ejecuta vstest.console.exe desde la línea de comandos dentro de su directorio de salida / prueba.

Hay algunos casos en los que se utiliza una carpeta separada, una de ellas es cuando está utilizando el atributo DeploymentItem. Mira here para más información.


La mejor solución para mí es usar ajustes de prueba, especialmente si múltiples pruebas necesitan los mismos archivos de datos.

Primero cree un archivo de ajustes de prueba y agregue los elementos de implementación que necesita (nombre de archivo o carpeta):

<TestSettings name="Local" id="00ebe0c6-7b64-49c0-80a5-09796270f111" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010"> <Description>These are default test settings for a local test run.</Description> <Deployment> <DeploymentItem filename="Folder1/TestScripts/test.xml" outputDirectory="TestScripts"/> <DeploymentItem filename="Folder2/TestData/" outputDirectory="TestData"/> </Deployment> <...../>

  • Al ejecutar en Visual Studio, use "seleccionar archivo de configuración de prueba" del menú "Prueba / configuración de prueba" para seleccionar nuevos ajustes de prueba

  • Al ejecutar mstest, utilice el parámetro / testsettings para que mstest use su configuración de prueba.


La respuesta Preet se utiliza para implementar elementos para una prueba única. Si desea hacerlo a nivel de solución, use la configuración .testrunconfig .


Parece que si proporciona un archivo TestSettings para la Solución, puede desmarcar la opción "Habilitar implementación" y evitar que mstest intente ejecutar desde ...TestResults/.../out donde no copia su extra archivos (a menos que los haga una opción de implementación).

Esto también es útil si depende de que los archivos adicionales estén en una estructura de carpeta preservada porque todos los elementos de implementación parecen ser copiados directamente (planos) en la carpeta de ejecución temporal (out) si usa la opción Implementación, Agregar carpeta en TestSettings ( las respuestas anteriores sugieren que puede mantener la estructura si agrega cada elemento como su propio DeploymentItem).

Para mí funcionó bien ejecutar pruebas directamente en Visual Studio (es decir, mis archivos extra en su estructura fueron encontrados y utilizados por las pruebas) porque había creado un archivo TestSettings por otra razón hace mucho tiempo (que ha habilitado la implementación Habilitado), pero no cuando TeamCity ejecuté mstest para ejecutar pruebas porque no había especificado que el archivo TestSettings debería ser utilizado.

Para crear un archivo TestSettings en Visual Studio, haga clic con el botón derecho en la Solución y elija Nuevo elemento, y seleccione la plantilla TestSettings. Para usar el archivo TestSettings en el símbolo del sistema de mstest.exe, agregue la opción, /testsettings:C:/Src/mySolution/myProject/local.testsettings (o agregue como una opción de línea de comando adicional en TeamCity con la ruta adecuada)


Puede definir DeploymentItem en una clase que contenga un método con el atributo AssemblyInitialize. Entonces está seguro de que los archivos se copian independientemente de la prueba que ejecute.

Lamentablemente, el atributo DeploymentItem se ejecuta solo en clases que contienen pruebas que está ejecutando. Entonces, si tiene 10 clases de prueba que usan el mismo conjunto de archivos, debe agregar el atributo a todas ellas.

También descubrió que los cambios en los archivos * .testsettings no se actualizan automáticamente en Visual Studio. Por lo tanto, después de agregar archivos / carpetas al despliegue en los ajustes de prueba, debe volver a abrir el archivo de solución y luego ejecutar las pruebas.


usar un atributo DeploymentItem

using System; using System.IO; using Microsoft.VisualStudio.TestTools.UnitTesting; using CarMaker; namespace DeploymentTest { [TestClass] public class UnitTest1 { [TestMethod()] [DeploymentItem("testFile1.xml")] public void ConstructorTest() { string file = "testFile1.xml"; Assert.IsTrue(File.Exists(file), "deployment failed: " + file + " did not get deployed"); } } }