Encuentro la TestCase
función en NUnit bastante útil como una forma rápida de especificar parámetros de prueba sin necesidad de un método separado para cada prueba. ¿Hay algo similar en MSTest?
[TestFixture]
public class StringFormatUtilsTest
{
[TestCase("tttt", "")]
[TestCase("", "")]
[TestCase("t3a4b5", "345")]
[TestCase("3&5*", "35")]
[TestCase("123", "123")]
public void StripNonNumeric(string before, string expected)
{
string actual = FormatUtils.StripNonNumeric(before);
Assert.AreEqual(expected, actual);
}
}
DataRow()
, consulte: blogs.msdn.microsoft.com/devops/2016/06/17/…Respuestas:
Microsoft anunció recientemente "MSTest V2" (ver artículo de blog ). Esto le permite utilizar de forma coherente (escritorio, UWP, ...) el
DataRow
atributo-!Una vez más, el Explorador de pruebas de Visual Studio Express desafortunadamente no reconoce estas pruebas. ¡Pero al menos las versiones "completas" de VS ahora admiten esa característica!
Para usarlo, simplemente instale los paquetes NuGet MSTest.TestFramework y MSTest.TestAdapter (ambos en versión preliminar a partir de ahora).
Respuesta anterior:
Si no tiene que seguir con MSTest y solo lo está usando para poder ejecutar las pruebas a través del Explorador de pruebas
porque solo tienes una edición de Visual Studio Express, entonces esta podría ser una solución para ti:Existe la extensión VsTestAdapter VSIX para poder ejecutar pruebas NUnit a través de Test Explorer. Desafortunadamente, los usuarios de VS Express no pueden instalar extensiones ... ¡Pero afortunadamente el VsTestAdapter también viene con un paquete NuGet simple !
Por lo tanto, si es un usuario de VS Express, simplemente instale VsTestAdapter NuGet-Package y disfrute ejecutando sus pruebas / casos de prueba NUnit a través de Test Explorer.Desafortunadamente, la declaración antes mencionada no es cierta. Si bien es perfectamente posible instalar el paquete a través de una edición Express, es inútil, ya que no puede utilizar el Explorador de pruebas. Anteriormente, había una nota al margen sobre una versión anterior de TestAdapter, que se eliminó de la página de descripción de 2.0.0 :
fuente
Sé que esta es una respuesta tardía, pero espero que ayude a otros.
Busqué por todas partes una solución elegante y terminé escribiendo una yo mismo. Lo usamos en más de 20 proyectos con miles de pruebas unitarias y cientos de miles de iteraciones. Ni una sola vez se perdió el ritmo.
https://github.com/Thwaitesy/MSTestHacks
1) Instale el paquete NuGet .
2) Herede su clase de prueba de TestBase
3) Cree una propiedad, campo o método que devuelva IEnumerable
4) Agregue el atributo MSTest DataSource a su método de prueba, apuntando al nombre IEnumerable anterior. Esto debe estar completamente calificado.
Resultado final: 3 iteraciones como el DataSource normal :)
fuente
Sé que esta es otra respuesta tardía, pero en mi equipo que está comprometido con el uso del marco de prueba de MS, desarrollamos una técnica que se basa solo en tipos anónimos para almacenar una matriz de datos de prueba y LINQ para recorrer y probar cada fila. No requiere clases o marcos adicionales, y tiende a ser bastante fácil de leer y comprender. También es mucho más fácil de implementar que las pruebas basadas en datos que utilizan archivos externos o una base de datos conectada.
Por ejemplo, digamos que tiene un método de extensión como este:
Puede usar una matriz de tipos anónimos combinados con LINQ para escribir pruebas como esta:
Al usar esta técnica, es útil usar un mensaje formateado que incluya los datos de entrada en la afirmación para ayudarlo a identificar qué fila hace que la prueba falle.
He escrito en un blog sobre esta solución con más antecedentes y detalles en AgileCoder.net .
fuente
Khlr dio buenas explicaciones detalladas y aparentemente este enfoque comenzó a funcionar en VS2015 Express para escritorio. Traté de dejar el comentario, pero mi falta de reputación no me permitió hacerlo.
Déjame copiar la solución aquí:
Para usarlo, simplemente instale los paquetes NuGet MSTest.TestFramework y MSTest.TestAdapter .
Un problema es
Por lo tanto, elimine Microsoft.VisualStudio.QualityTools.UnitTestFramework de las referencias del proyecto.
Le invitamos a editar la respuesta original y eliminar esta.
fuente
MSTest tiene el atributo DataSource, que te permitirá alimentarlo con una tabla de base de datos, csv, xml, etc. Lo he usado y funciona bien. No conozco una forma de poner los datos justo arriba como atributos como en su pregunta, pero es muy fácil configurar las fuentes de datos externas y los archivos se pueden incluir en el proyecto. Lo tuve funcionando una hora desde que comencé, y no soy un experto en pruebas automatizadas.
https://msdn.microsoft.com/en-us/library/ms182527.aspx?f=255&MSPPError=-2147217396 tiene un tutorial completo basado en la entrada de la base de datos.
http://www.rhyous.com/2015/05/11/row-tests-or-paramerterized-tests-mstest-xml/ tiene un tutorial basado en la entrada de archivos XML.
fuente