Estoy viendo la función Live Testing en el nuevo Visual Studio (estoy usando NUnit).

Hay una opción de "exclusión" para las pruebas unitarias, para indicar que no se deben ejecutar pruebas específicas (tal vez sean pruebas de integración, o pruebas lentas, o lo que sea).

enter image description here

¿Dónde se almacena esta información? No veo ninguna indicación en el csproj ni en ningún otro lugar de que una prueba no deba incluirse en Live Testing. ¿No debería haber algún archivo de información en algún lugar que pueda verificar en el control de origen para que el resto de mi equipo no tenga que especificar manualmente qué pruebas no deberían ejecutarse mediante pruebas en vivo?

4
Matthew Groves 7 mar. 2017 a las 22:59

2 respuestas

La mejor respuesta

Incluir / excluir es una función de nivel de usuario. Esto es extremadamente útil cuando desea ejecutar un conjunto específico de pruebas para una sesión de edición en particular o para mantener sus propias preferencias personales. Para evitar que se ejecuten pruebas y persistir esa información, puede hacer algo como lo siguiente:

[ExcludeFromCodeCoverage]
public class SkipLiveFactAttribute : FactAttribute
{
    private static bool s_lutRuntimeLoaded = AppDomain.CurrentDomain.GetAssemblies().Any(a => a.GetName().Name == "Microsoft.CodeAnalysis.LiveUnitTesting.Runtime");

    public override string Skip => s_lutRuntimeLoaded ? "Test excluded from Live Unit Testing" : "";
}

public class Class1
{
    [SkipLiveFact]
    public void F()
    {
        Assert.True(true);
    }
}
5
Manish Jayaswal 8 mar. 2017 a las 22:42

Ahora puede usar los siguientes atributos para especificar en el código fuente que desea excluir los métodos de prueba específicos de Live Unit Testing:

For xUnit: [Trait("Category", "SkipWhenLiveUnitTesting")]
For NUnit: [Category("SkipWhenLiveUnitTesting")]
For MSTest: [TestCategory("SkipWhenLiveUnitTesting")]

Documentos oficiales aquí

3
ilkerkaran 17 ene. 2020 a las 15:33