Professional Documents
Culture Documents
Tutorial: Crear y ejecutar pruebas unitarias. Este tutorial le guía a lo largo de los pasos
necesarios para crear y personalizar pruebas unitarias, ejecutarlas y examinar sus
resultados.
Tutorial: Ejecutar pruebas y ver la cobertura del código. Este tutorial muestra cómo ver
los datos de cobertura de código, que muestran la proporción de código del proyecto
que se está probando.
Tutorial: Utilizar la utilidad de prueba de la línea de comandos. En este tutorial, se
emplea la utilidad de línea de comandos MSTest.exe para ejecutar pruebas y ver los
resultados.
Nota: el único error intencionado de este ejemplo es que en el método Debit "m_balance +=
amount" debe haber un signo menos, no un signo más, antes del signo igual.
Código de ejemplo
using System;
namespace BankAccountNS
{
/// <summary>
/// Bank Account demo class.
/// </summary>
public class BankAccount
{
private string m_customerName;
private BankAccount()
{
}
public BankAccount(string customerName, double balance)
{
m_customerName = customerName;
m_balance = balance;
}
if (amount < 0)
{
throw new ArgumentOutOfRangeException("amount");
}
m_balance += amount;
}
if (amount < 0)
{
throw new ArgumentOutOfRangeException("amount");
}
m_balance += amount;
}
ba.Credit(5.77);
ba.Debit(11.22);
Console.WriteLine("Current balance is ${0}", ba.Balance);
}
}
}
Para trabajar con este código, primero tiene que crear un proyecto para él en Visual Studio. Siga
los pasos de la sección "Preparar el tutorial" en Tutorial: Crear y ejecutar pruebas unitarias.
Vea también
Tareas
Nota
Para obtener información acerca de cómo ejecutar pruebas desde una línea de comando, vea Tutorial: Ut
comandos.
Requisitos previos
Prepare el tutorial
Nota
Si el archivo Class1.cs no se abre en el editor de código, en el Explorador de soluciones, haga dob
Ahora tiene un proyecto denominado Bank que contiene código fuente para realizar pruebas y
las herramientas necesarias para ello. El espacio de nombres de Bank, BankAccountNS,
contiene la clase pública BankAccount cuyos métodos probará en los procedimientos
siguientes.
Nota
Se asigna automáticamente a cada método de prueba el atributo TestMethod(). Cada prueba corr
código en pruebas que se desea probar. Los métodos de prueba se albergan en una clase de prueb
atributo TestClass().
Nota
Más adelante en este tutorial, usará el valor previsto de Balance (0.77).
Ha creado un archivo de código fuente que contiene pruebas para el proyecto Bank. Ahora está
listo para ejecutar las pruebas en la clase BankAccountTest del código del proyecto Bank.
Ejecutar y personalizar un prueba unitaria
Requisito previo: siga los pasos del procedimiento Crear una prueba unitaria.
Esta instrucción compara el resultado esperado (0.77) con el resultado real de una
llamada al método Balance de la clase BankAccount. Si los dos valores no coinciden, la
instrucción Assert devuelve False, con lo que la prueba no se supera.
Nota
Esta instrucción Assert incluye un tercer parámetro, delta, con un valor de 0.05. El parámetro de
métodoAssert.AreEqual; compensa el error de redondeo intrínseco de los tipos de punto flotante
Ha ejecutado el método DebitTest generado de su clase de prueba BankAccountTest, ha
observado que necesitada cambios, y ha realizado esos cambios.Ahora está listo para probar la
exactitud del método Debit en su aplicación.
Requisito previo: siga los pasos del procedimiento Crear y personalizar una prueba unitaria.
2. En la ventana Resultados de pruebas, haga clic con el botón secundario en la fila que
representa la prueba y, a continuación, haga clic en Ver detalles de resultados de la
prueba.
m_balance -= amount;
Nota
No hace falta recompilar el proyecto de prueba después de cambiar el código fuente, porque cuan
automáticamente, compila el proyecto.
Ha creado una prueba unitaria que funciona y, a través de ella, ha encontrado y corregido un
error en el código.
Requisito previo: siga los pasos del procedimiento Crear una prueba unitaria y corregir el
código.
Ha agregado un método privado, ha creado una nueva prueba unitaria para él y ha ejecutado la
prueba. Puede ejecutarla más veces usando para la variablebalance otros valores extremos,
como 15.00.
Pasos siguientes
Puede ejecutar las pruebas en una línea de comandos en lugar de en Visual Studio. Para obtener
más información, vea Tutorial: Utilizar la utilidad de prueba de la línea de comandos.
Si está usando Visual Studio 2010 Ultimate, puede crear pruebas de carga para aislar problemas
de esfuerzo y rendimiento usando las pruebas unitarias.
Tutorial: Crear y ejecutar una prueba de carga que contenga pruebas unitarias
Vea también
Tareas
Para ver qué proporción del código de un proyecto se está probando realmente, utilice la
característica de cobertura de código de Microsoft Visual Studio 2010.Para ello, primero edite la
configuración de ejecución, para especificar el ensamblado que contiene el código cuya
cobertura desea medir; a continuación, ejecute pruebas en ese código. Las estadísticas de la
cobertura de código detalladas aparecen en una ventana, donde también puede ver, línea por
línea, qué código se ha probado.
Requisitos previos
Complete los pasos del procedimiento "Ejecutar una prueba unitaria y corregir el código"
en Tutorial: Crear y ejecutar pruebas unitarias. De este modo, se crean las dos pruebas que va a
ejecutar en el procedimiento siguiente.
3. Seleccione <Solo el equipo local> como el rol que se usará para recopilar los datos de
cobertura de código.
Precaución
Para los datos de cobertura de código, debe ser el rol que ejecutará las pruebas.
Precaución
La recopilación de datos de cobertura de código no funciona si la configuración de pruebas tambi
información de IntelliTrace.
Nota
Para restablecer la configuración de este adaptador de datos de diagnóstico, haga clic en Restable
predeterminada.
10. Haga clic en Guardar como y, a continuación, haga clic en Guardar en el cuadro de
diálogo. Aparece un cuadro de mensajes donde se indica que se guarde el archivo
existente. Haga clic en Sí en el cuadro de mensaje para reemplazar el archivo existente.
11. En el menú Prueba, apunte a Seleccionar configuración de pruebas activa. Un
submenú muestra todas las configuraciones de pruebas de la solución.Coloque una
marca de verificación junto a las configuraciones que ha modificado,
Local.testsettings. De este modo pasan a ser las configuraciones de pruebas activas.
12. En el Editor de lista de pruebas, active las casillas situadas junto
a CreditTest y DebitTest, haga clic con el botón secundario del mouse y
seleccioneEjecutar pruebas comprobadas.
Vea también
Tareas
Otros recursos
Crear una configuración de pruebas para ejecutar pruebas automatizadas desde Visual Studio
Tutorial: Utilizar la utilidad de prueba de la línea de
comandos
Visual Studio 2010
Otras versiones
Este tutorial muestra cómo ejecutar pruebas unitarias desde un indicador de la línea de
comandos y, a continuación, ver los resultados.
Requisitos previos
Para ello, haga clic en Inicio, elija Todos los programas, seleccione Microsoft Visual
Studio 2010, elija Visual Studio Tools y, por último, haga clic enSímbolo del sistema
de Visual Studio 2010.
cd TestProject1\bin\Debug
Esta carpeta contiene el proyecto de prueba que creó en los procedimientos de
creación y ejecución de pruebas unitarias. El ensamblado del proyecto de prueba,
TestProject1.dll, solo contiene algunas pruebas unitarias.
Nota
Su proyecto de código de producción y su proyecto de prueba generarán ensamblados distintos. A
línea de comandos en el ensamblado del proyecto de prueba, no en el ensamblado de su proyecto
MSTest /?
MSTest /testcontainer:TestProject1.dll
Este comando ejecuta las tres pruebas y devuelve resultados como los siguientes:
Loading TestProject1.dll...
Starting Execution...
-------- ------------------
Inconclusive TestProject1.BankAccountTest.CreditTest
Passed TestProject1.BankAccountTest.DebitTest
Passed TestProject1.BankAccountTest.FreezeAccountTest
Summary
----------
Inconclusive 1
Passed 2
-----------------
Total 3
Nota
Si realiza el procedimiento "Crear y ejecutar un prueba unitaria para un método privado" de Tuto
este comando también mostrará resultados para la prueba unitaria GetAccountTestType.
5. Ejecute otra vez las pruebas y guarde los resultados en un archivo especificado.
Este comando ejecuta las tres pruebas y devuelve los mismos resultados que en el paso
anterior. También crea un archivo denominado testResults1.trx y escribe en él los
resultados de las pruebas, en un formato compatible con un visor XML como Microsoft
Internet Explorer o Microsoft Visual Studio. Si testResults1.trx ya existe, MSTest.exe no
se ejecuta y se muestra un error para indicar que ya existe un archivo con ese nombre.
Nota
Para obtener más información acerca de todas las opciones que puede utilizar con el comando MS
comandos para MSTest.exe.
testResults1.trx
Esto abre Internet Explorer y muestra los resultados de pruebas. O bien, puede abrir
este archivo en el entorno integrado de desarrollo (IDE) de Visual Studio (IDE), de la
siguiente manera:
Vea también
Tareas
Cómo: Ejecutar pruebas automatizadas desde la línea de comandos usando MSTest
Tutorial: Crear y ejecutar pruebas unitarias
Conceptos
MSTest.exe no distingue entre mayúsculas y minúsculas para interpretar las opciones o los
valores que se especifican para ellas.
Las tablas siguientes muestran todas las opciones para MSTest.exe, con descripciones
breves. Puede ver un resumen similar escribiendo MSTest/h en una línea de comandos.
Nota
Esta opción de la línea de comandos se mantiene por motivos de compatib
Microsoft Visual Studio 2010.Las configuraciones de las ejecuciones de pr
configuraciones de pruebas en Visual Studio 2010 Ultimate.
Para obtener más información acerca de estas opciones, vea Opciones de la línea de comandos
para publicar resultados de pruebas.
Las secciones siguientes describen con más detalle muchas de las opciones para MSTest.exe. No
incluye las opciones que se usaron para publicar los resultados de las pruebas. Para obtener
más información acerca de esas opciones, vea Opciones de la línea de comandos para publicar
resultados de pruebas.
/testcontainer
/testcontainer:[nombre de archivo]
El contenedor de pruebas es un archivo que contiene las pruebas que se desea ejecutar. Por
ejemplo, para pruebas por orden, el contenedor de pruebas es el archivo .orderedtest que
define la prueba por orden. Para pruebas unitarias, es el ensamblado generado a partir del
proyecto de prueba que contiene los archivos de código fuente de la prueba unitaria.
Nota
Para pruebas unitarias, éste es el ensamblado que contiene el código de la prueba, no el ensamblado que
que se está probando. Por ejemplo, si una solución contiene un proyecto denominado BankAccount y un
denominado BankAccountTest, especifique /testcontainer:BankAccountTest.dll.
Nota
Puesto que el archivo de metadatos de prueba también contiene pruebas que se pueden ejecutar, no se de
opciones /testcontainer y/testmetadata en una misma línea de comandos. Hacerlo resultaría ambiguo y
/testmetadata
/testmetadata:[nombre de archivo]
El archivo de metadatos de prueba se crea para una solución al crear listas de pruebas desde la
ventana Editor de lista de pruebas. Este archivo contiene información sobre todas las pruebas
incluidas en la ventana Editor de lista de pruebas. Se trata de todas las pruebas que existen en
todos los proyectos de prueba en la solución.
El archivo de metadatos de prueba sólo se puede modificar efectuando cambios que se reflejen
en la ventana Editor de lista de pruebas, como crear o eliminar pruebas, o cambiar las
propiedades de una prueba.
Nota
Puesto que el contenedor de pruebas contiene pruebas que se pueden ejecutar, no se deben especificar las
opciones /testcontainer y /testmetadata en una misma línea de comandos. Hacerlo resultaría ambiguo y
La opción/testlist es una lista de pruebas, según el archivo de metadatos de prueba, que se van
a ejecutar. Para ejecutar las pruebas contenidas en varias listas de pruebas, use varias veces la
opción /testlist. Se ejecutará cualquier prueba por orden en la lista de pruebas.
Nota
Sólo puede utilizar la opción /testlist si también utiliza la opción /testmetadata.
/category
Nota
Debe usar la opción /testcontainer para poder usar la opción /category.
Solo se puede usar la opción /category una vez por línea de comandos, pero puede especificar
varias categorías de pruebas con el filtro de categoría de pruebas. El filtro de categoría de
pruebas está compuesto por uno o varios nombres de categoría de pruebas separados por los
operadores lógicos '&', '|' , '!', '&!'. Los operadores lógicos '&' y '|' no se pueden usar juntos para
crear un filtro de categoría de pruebas.
Por ejemplo:
Nota
Si su filtro está compuesto por una sola categoría, como /category:group1, no tiene que escribir e
embargo, si su filtro hace referencia a más de una categoría, como /category:"group1&group2",
dobles.
/test
Nota
Puede utilizar la opción /test con /testcontainer o /testmetadata, pero no con ambas.
La cadena que se especifique con la opción /test sirve para asociar los nombres de las pruebas
en un contenedor de pruebas o en un archivo de metadatos de prueba. Esto significa que se
pueden especificar varias pruebas utilizando un valor único para /test. Por ejemplo, si se
indica /test:ittest, se generarían coincidencias para pruebas llamadas DebitTest y CreditTest
porque los dos nombres de pruebas contienen la subcadena "ittest".
Nota
El valor que se especifique con la opción /test se prueba no sólo para el nombre de la prueba, sino tambié
como aparece en el Explorador de soluciones o, con pruebas unitarias, para su nombre completo.
/noisolation
/noisolation
Utilice esta opción para ejecutar pruebas en el proceso MSTest.exe. Utilizar esta opción no
produce ningún otro cambio en la configuración de la ejecución de prueba. El propósito de esta
opción es mejorar la velocidad de ejecución de pruebas. Sin embargo, aumenta el riesgo de la
ejecución de pruebas en general, porque una excepción no controlada iniciada por el código de
pruebas haría que se bloqueara el proceso MSTest.exe.
/testsettings
/testsettings:[nombre de archivo]
Nota
Para obtener más información sobre los archivos de configuración de pruebas, vea Crear una confi
automatizadas como parte de un plan de pruebas.
/runconfig
/runconfig:[nombre de archivo]
/resultsfile
/resultsfile:[nombre de archivo]
Utilice esta opción para guardar los resultados de la ejecución de prueba en el archivo con
nombre. Por ejemplo: /resultsfile:testResults.trx.
/unique
/unique
La línea de comandos:
proporciona un error que no hay una coincidencia única para este nombre de pruebas. Puede
identificar el nombre de pruebas singularmente utilizando el Identificador para la prueba de la
que se hace una lista en la vista Propiedades para la prueba.
/usestderr
/usestderr
Las pruebas no superadas, anuladas, con errores, para las que se haya agotado el
tiempo de espera, que no se pueden ejecutar o no ejecutadas.
Errores de ejecución.
Errores al analizar los argumentos de la línea de comandos.
Resumen de ejecución cuando la ejecución de pruebas no se ha superado.
/detail:[identificador de propiedad]
Esta opción se utiliza para mostrar propiedades de caso de prueba adicionales, si existen. Se
puede pasar más de una instancia de la opción /detail, cada una de ellas con un solo
identificador de propiedad, en una única línea de comandos. A continuación, se indican
identificadores de propiedad válidos para la opción/detail:
adapter id pro
computername isautomated rea
debugtrace link spo
description longtext std
displaytext name std
duration outcometext sto
errormessage owner tes
errorstacktrace parentexecid tes
executionid priority tes
groups projectname trac
Nota
La selección real de los identificadores de propiedad que se pueden usar con la opción /detail varía según
consiguiente, esta lista es sólo una aproximación. En particular, si está utilizando los tipos de prueba pers
propiedades será diferente. Para saber qué identificadores de propiedad se pueden usar, examine el archiv
generado por la ejecución de prueba. Para obtener más información acerca de los archivos de resultados
Guardar y abrir resultados de pruebas en Visual Studio.
...
Results Top Level Tests
-------- -----------------
Inconclusive TestProject2.BankAccountTest.CreditTest
[testtype] = Unit Test
...
Vea también
Conceptos