Con el comando dotnet test en .NET Core, se puede usar una expresión de filtro para ejecutar las pruebas seleccionadas. En este artículo se explica cómo filtrar las pruebas. En los ejemplos se usa dotnet test. Si está usando vstest.console.exe, reemplace --filter por --testcasefilter:.
Sintaxis
CLI de .NET
dotnettest --filter<Expression>
Expression tiene el formato <Property><Operator><Value>[|&<Expression>].
Las expresiones se pueden unir con operadores booleanos: | para el booleano or y & para el booleano and.
Las expresiones pueden incluirse entre paréntesis. Por ejemplo: (Name~MyClass) | (Name~MyClass2).
Una expresión sin ningún operador se interpreta como elemento contains en la propiedad FullyQualifiedName. Por ejemplo, dotnet test --filter xyz es lo mismo que dotnet test --filter FullyQualifiedName~xyz.
Property es un atributo de Test Case. Por ejemplo, las propiedades siguientes son compatibles con los marcos de pruebas unitarias populares.
Marco de prueba
Propiedades admitidas
MSTest
FullyQualifiedName Name ClassName Priority TestCategory
xUnit
FullyQualifiedName DisplayName Traits
Nunit
FullyQualifiedName Name Priority TestCategory
Operadores
= coincidencia exacta
!= coincidencia no exacta
~ contiene
!~ no contiene
Value es una cadena. Todas las búsquedas distinguen mayúsculas de minúsculas.
Escape de caracteres
Para usar un signo de exclamación (!) en una expresión de filtro, aplíquele una secuencia de escape en algún shell de Linux o macOS mediante la colocación de una barra diagonal inversa delante (\!). Por ejemplo, el filtro siguiente omite todas las pruebas de un espacio de nombres que contiene IntegrationTests:
Para Name o DisplayName, use la codificación url para los caracteres especiales. Por ejemplo, para ejecutar una prueba con el nombre MyTestMethod y un valor de cadena "text", use el siguiente filtro:
dotnet test --filter ClassName=MSTestNamespace.UnitTest1
Ejecuta pruebas que están en la clase MSTestNamespace.UnitTest1. Nota: El valor ClassName debe tener un espacio de nombres, por lo que ClassName=UnitTest1 no funcionará.
dotnet test --filter FullyQualifiedName!=MSTestNamespace.UnitTest1.TestMethod1
Ejecuta todas las pruebas excepto MSTestNamespace.UnitTest1.TestMethod1.
dotnet test --filter TestCategory=CategoryA
Ejecuta pruebas anotadas con [TestCategory("CategoryA")].
dotnet test --filter Priority=2
Ejecuta pruebas anotadas con [Priority(2)].
Ejemplos de uso de los operadores condicionales | y &:
Para ejecutar pruebas que tienen FullyQualifiedName con TestClass1y tienen un elemento Trait con una clave de "Category" y un valor de "CategoryA"o tienen un elemento Trait con una clave de "Priority" y un valor de 1.
Para ejecutar pruebas que tienen FullyQualifiedName con UnitTest1y tienen un elemento Category de "CategoryA"o tienen un elemento Property con un valor "Priority" de 1.
Eduki honen iturburua GitHub-en aurki daiteke, bertan arazoak eta aldaketak egiteko eskaerak sortu eta berrikus ditzakezu. Informazio gehiagorako, ikusi gure kolaboratzaileen gida.
.NET oharrak
.NET iturburu irekiko proiektu bat da. Hautatu esteka bat oharrak bidaltzeko:
Bat egin IAren soluzio eskalagarrien soluzioak sortzeko topaketa sortarekin, mundu errealaren erabilera-kasuetan oinarrituak, beste garatzaile eta aditu batzuekin.