vscode visual studio setup open code change visual-studio unit-testing visual-studio-2012 tdd coded-ui-tests

setup - ¿Cómo excluir ciertas pruebas en el Visual Studio Test Runner?



vscode user setup (7)

Tengo atributos en ciertas pruebas que, idealmente, no quiero ejecutar en cada compilación. La mayoría de mis pruebas son pruebas unitarias normales y quiero que se ejecuten en cada compilación.

Entonces, ¿cómo puedo excluir una prueba por categoría o tipo de proyecto?

Por ejemplo, me gustaría excluir CodedUItests :

[CodedUITest] public class SearchViewTests

... o excluir pruebas en una TestCategory determinada:

[TestMethod] [TestCategory("Database Integration")] public void ContactRepositoryGetByIdWithIdExpectCorrectContact()

En particular, quiero excluir las pruebas de IU codificadas, ya que interrumpen mi capacidad para continuar trabajando, mientras que todas las demás pruebas se ejecutarán en segundo plano sin molestarme.

Originalmente, esta pregunta era sobre Visual Studio 2012, por lo que preferiría soluciones que funcionen en esa versión y más.




Hay un filtro que puede aplicar en el Explorador de pruebas. Rasgo: "UnitTest" este filtro recogerá solo las pruebas con el atributo TestCategory ("UnitTest") ignorando los demás.


La única "solución" (o mejor solución) que encontré para trabajar es especificar un filtro "Nombre completo". Básicamente suelo estructurar mi solución como

  • ProyectoA
  • ProjectA.UnitTests
  • ProyectoA.IntegrationTests

y así. Ahora puedo especificar un filtro en Test Explorer como FullName: "UnitTests" que parece funcionar.
(Esperaba poder usar una expresión regular dentro del nombre de búsqueda, pero no parece ser compatible).


Puedes usar el filtro de búsqueda en Unit Text Explorer.

En el nuevo Exlorer de prueba que se envió con 2012, puede agrupar las pruebas por ''Resultados de la prueba'', ''Nombre del archivo'', ... etc., pero en el grupo de compilación RTM / la búsqueda por ''TestCategory'' no está presente en el Explorador de pruebas. Sin embargo, hay un filtro en la línea de comandos y TeamBuild basado en TestCategory (Ejecución de pruebas unitarias selectivas en VS 2012 RC usando TestCaseFilter) en VS2012.

De un miembro del Equipo de desarrollo de VS, entendieron la importancia de esta característica faltante. Está en la lista de pedidos pendientes y debería estar disponible en las compilaciones / actualizaciones de furutre.

El siguiente blog proporciona más detalles: http://blogs.msdn.com/b/vikramagrawal/archive/2012/07/23/running-selective-unit-tests-in-vs-2012-rc-using-testcasefilter.aspx


Un poco tarde para la fiesta, tuve el mismo problema en el que todos los desarrolladores se enfrentaban a la Interrupción de la UI codificada cuando ejecutaban todas las pruebas unitarias en una solución. Mi solución es agregar lo siguiente al AssemblyInitializer del proyecto CodedUI:

if(!ConfigurationManager.AppSettings["MachinesToRunCodedUI"].Split('','').Contains(Environment.MachineName)) Assert.Inconclusive("CodedUI Tests are skipped.");

Solo cuando una máquina es parte de esa lista de MachinesToRunCodedUI, ejecutará las pruebas de CodedUI.


TL; versión DR:

Otras respuestas han comentado sobre las soluciones y el uso de las opciones más recientes de Traits . Sin embargo, ninguno le dice cómo excluir específicamente las pruebas para un rasgo . Para hacerlo, simplemente use un - (menos) para negar un filtro en el cuadro de búsqueda, por ejemplo:

-Trait:"DatabaseIntegration"

Esto excluirá todas las pruebas con ese rasgo. La documentación de MSDN sobre estas características tiene la siguiente explicación:

Para excluir un subconjunto de los resultados de un filtro, use la siguiente sintaxis:

FilterName:"Criteria" -FilterName:"SubsetCriteria"

Por ejemplo,

FullName:"MyClass" - FullName:"PerfTest"

devuelve todas las pruebas que incluyen "MyClass" en su nombre, excepto las pruebas que también incluyen "PerfTest" en su nombre.