NUnit tiene una característica llamada Valores, como a continuación:
[Test]
public void MyTest(
[Values(1,2,3)] int x,
[Values("A","B")] string s)
{
// ...
}
Esto significa que el método de prueba se ejecutará seis veces:
MyTest(1, "A")
MyTest(1, "B")
MyTest(2, "A")
MyTest(2, "B")
MyTest(3, "A")
MyTest(3, "B")
Estamos usando MSTest ahora, pero ¿hay algún equivalente para esto para que pueda ejecutar la misma prueba con múltiples parámetros?
[TestMethod]
public void Mytest()
{
// ...
}
Respuestas:
Desafortunadamente, no es compatible con versiones anteriores de MSTest. Aparentemente hay un modelo de extensibilidad y puede implementarlo usted mismo . Otra opción sería utilizar pruebas basadas en datos .
Sin embargo, mi opinión personal sería seguir con NUnit ...
A partir de Visual Studio 2012, actualización 1, MSTest tiene una característica similar. Ver la respuesta de McAden .
fuente
EDITAR 4 : Parece que esto se completa en MSTest V2 17 de junio de 2016: https://blogs.msdn.microsoft.com/visualstudioalm/2016/06/17/taking-the-mstest-framework-forward-with-mstest- v2 /
Respuesta original :
Desde hace aproximadamente una semana en Visual Studio 2012 Update 1, algo similar ahora es posible:
EDITAR : Parece que esto solo está disponible dentro del proyecto de prueba de unidad para WinRT / Metro . Gorrón
EDITAR 2 : Los siguientes son los metadatos encontrados usando "Ir a la definición" dentro de Visual Studio:
EDITAR 3 : Este problema se mencionó en los foros UserVoice de Visual Studio. Última actualización dice:
https://visualstudio.uservoice.com/forums/330519-team-services/suggestions/3865310-allow-use-of-datatestmethod-datarow-in-all-unit
fuente
Esta característica está en prelanzamiento ahora y funciona con Visual Studio 2015.
Por ejemplo:
fuente
No es exactamente lo mismo que los atributos de NUnit
Value
(oTestCase
), pero MSTest tiene elDataSource
atributo, que le permite hacer algo similar.Puede conectarlo a la base de datos o al archivo XML; no es tan sencillo como la función de NUnit, pero hace el trabajo.
fuente
MSTest tiene un atributo poderoso llamado DataSource . Con esto, puede realizar pruebas basadas en datos como lo solicitó. Puede tener sus datos de prueba en XML, CSV o en una base de datos. Aquí hay algunos enlaces que lo guiarán
fuente
Es muy sencillo de implementar: debe usar la
TestContext
propiedad yTestPropertyAttribute
.Ejemplo
EDITAR:
Preparé algunos métodos de extensión para simplificar el acceso a la
TestContext
propiedad y actuar como si tuviéramos varios casos de prueba. Vea el ejemplo con el procesamiento de propiedades de prueba simples aquí:y ejemplo con la creación de objetos de prueba complejos:
Eche un vistazo a los métodos de extensión y al conjunto de muestras para obtener más detalles.
fuente
Por supuesto, hay otra forma de hacer esto que no se ha discutido en este hilo, es decir, a través de la herencia de la clase que contiene el TestMethod. En el siguiente ejemplo, solo se ha definido un TestMethod pero se han realizado dos casos de prueba.
En Visual Studio 2012, crea dos pruebas en el TestExplorer:
DemoTest_A12_B4.test
fuente
MSTest no es compatible con esa característica, pero puede implementar su propio atributo para lograrlo.
Eche un vistazo a Habilitar pruebas parametrizadas en MSTest usando PostSharp .
fuente
No pude hacer que The
DataRowAttribute
funcionara en Visual Studio 2015, y esto es lo que terminé con:La solución real aquí es usar NUnit (a menos que esté atascado en MSTest como lo estoy en esta instancia en particular).
fuente