visual-studio-2008 mstest

¿Cómo decide MSTEST/Visual Studio 2008 Team Test decidir el orden de ejecución del método de prueba?



visual-studio-2008 (8)

Tenía la impresión de que los métodos de prueba en una clase de prueba de unidad se ejecutarían en el orden en que aparecen en el archivo de clase. Aparentemente esto no es verdad. Tampoco parece estar puramente basado fuera del orden alfabético tampoco. ¿Cómo MSTEST decide el orden de ejecución?

EDITAR: Pude rastrear la respuesta después de cavar un poco. Vea abajo.



No debería importar en qué orden se ejecuten ... si tus pruebas dependen de que otra prueba se ejecute primero, tus pruebas son defectuosas :-)


Hay muchas formas de ordenar las pruebas en VS. Use la vista de prueba y agregue columnas adicionales y el orden. Yo uso archivos VSMDI y esto los ejecuta en el orden especificado allí.



Ordenar en Vista de prueba o en el editor de lista de prueba hace que aparezcan como si tuviera control, es solo un producto derivado de la implementación. No hacemos ningún intento de ejecutarlos en un orden específico (hemos ido y venido en el "orden de permitir" y "orden aleatorio").

Si realmente necesita un pedido, para eso están los exámenes ordenados. Estos están disponibles en todas las ediciones donde la Prueba de unidad está disponible: use el menú Prueba / Nueva prueba o haga clic con el botón derecho en el proyecto de prueba y cree una "prueba ordenada".


Es muy sencillo. Estoy usando esto

C:> mstest /testcontainer:C:/MyTest.dll /resultsfile:C:/MyTestresults.xml

La lógica está aquí que por defecto mstest te da un archivo .trx. Entonces en el comando en contra de la opción [/ resultfile:] escriba el nombre del archivo dando la extensión .xml. Así que usé /resultsfile:C:/MyTestresults.xml en lugar de /resultsfile:C:/MyTestresults.trx

Esto funciona bien para mi. Avíseme si funciona para usted.


En mis experiencias (era un poco difícil) probé mucho sobre el orden de cambio de las órdenes de ejecución de métodos en el proyecto MStest. Voy a tratar de describir los pasos.

  1. Debe asegurarse de eliminar los archivos predeterminados .testrunconfig y .vsmdi. Estos archivos creados por Visual Studio cuando se crea el proyecto de prueba.

  2. Cierre la instancia de Visual Studio y vuélvala a abrir.

  3. Cuando se abre Visual Studio, debe abrir la lista de prueba Edior y luego crear su propia lista en la sección Listas de pruebas. Después de crear una nueva lista de prueba, debería estar vacía.

  4. Vaya a la sección de pruebas All Loaded y luego arrastre cualquier prueba a la sección de prueba recién creada con su orden seleccionado.

Luego asegúrate de que tu última sección de prueba creada esté marcada y puedes presionar la prueba de ejecución y voala se está ejecutando con tu orden definida.

No sé si esto podría ser un error o algo así, pero funciona mágicamente. Probamos este método un par de veces con mi colega.

Buena cerradura


Problema: lo que quiero hacer es ejecutar solo las pruebas web que se incluyen en mi prueba ordenada. Estoy usando una prueba ordenada solo para ese fin, así que puedo ejecutar mis pruebas web en el orden específico en el que las necesito para que se ejecuten. Tengo muchas pruebas web, pero mi prueba ordenada contiene un subconjunto de esas pruebas web. , que me gustaría ejecutar Solución: una prueba ordenada se utiliza para ejecutar un conjunto de pruebas en un orden determinado. Cree una lista de prueba Orderer en Visual Studio / proyecto de prueba. Desde la ventana de la vista de prueba (Prueba | Windows | Vista de prueba), seleccione la Prueba ordenada y ejecútela desde allí (puede hacer clic con el botón derecho y seleccionar "Ejecutar selección"). La prueba ordenada ejecutará automáticamente todos sus webtest que estén incluidos en ella.

Verás los resultados en la ventana de resultados de la prueba (Prueba | Windows | Resultados de prueba); haga doble clic en el examen OrderedTest, y verá los resultados detallados para cada uno de sus webtest allí. Puede hacer doble clic en cada webtest y podrá ver resultados detallados para cada uno de ellos.