2009-07-28 13 views

Respuesta

15

Debería crear una nueva clase para esa prueba que solo tiene la configuración (o la falta de configuración) que necesita.

Como alternativa, podría desfabricar el código de configuración en un método que todas las otras pruebas llaman, pero no recomiendo este enfoque.

+1

si quiero que esto sea en la misma clase, ¿cómo puedo hacer eso ?? –

0

No creo que puedas hacer eso, implicaría saber qué prueba estaba a punto de ejecutarse, lo cual no creo que sea posible.

te sugiero que lo puso dentro de un diferente [TestFixture]

2

Puede hacer que el principal SetUp en una clase base:

[SetUp] 
public virtual void SetUp() 
{ 
    // Set up things here 
} 

... y luego anularlo en el clase en la que usted tiene las pruebas que no se debe ejecutar el código SetUp:

[SetUp] 
public override void SetUp() 
{ 
    // By not calling base.SetUp() here, the base SetUp will not run 
} 
19

también puede añadir un ca tegory e inspeccionar la lista de categorías en su configuración:

public const string SKIP_SETUP = "SkipSetup"; 

[SetUp] 
public void Setup(){ 
    if (!CheckForSkipSetup()){ 
     // Do Setup stuff 
    } 
} 

private static bool CheckForSkipSetup() { 
    ArrayList categories = TestContext.CurrentContext.Test 
     .Properties["_CATEGORIES"] as ArrayList; 

    bool skipSetup = categories != null && categories.Contains(SKIP_SETUP); 
    return skipSetup ; 
} 

[Test] 
[Category(SKIP_SETUP)] 
public void SomeTest(){ 
    // your test code 
} 
+0

No funciona correctamente ... –

+3

@DebendraDash '_CATEGORIES' se llama 'Categoría' en las versiones más recientes de NUnit. Este es el tipo de cosas que pueden suceder fácilmente al depender de la biblioteca interna. –

0

Este es el código que propongo para lograr lo que quiere.

public const string SKIP_SETUP = "SkipSetup"; 

Ahora agregue el siguiente método:

private static bool CheckForSkipSetup() 
{    
    var categories = TestContext.CurrentContext.Test?.Properties["Category"]; 

    bool skipSetup = categories != null && categories.Contains("SkipSetup"); 
    return skipSetup; 
} 

Ahora compruebe la condición de la siguiente manera:

[SetUp] 
public async Task Dosomething() 
{ 
    if (!CheckForSkipSetup()) 
    { 

    } 
} 

utilizar estos en los casos de prueba de la siguiente manera:

[Test] 
[Category(SKIP_SETUP)] 
public async Task Mywork() 
{ 

} 
1

Aquí está el código que propongo para lograr lo que quiere:

public const string SKIP_SETUP = "SkipSetup"; 

private static bool CheckForSkipSetup() 
{ 
    string category = string.Empty; 
    var categoryKeys = TestContext.CurrentContext.Test.Properties.Keys.ToList(); 

    if (categoryKeys != null && categoryKeys.Any()) 
     category = TestContext.CurrentContext.Test.Properties.Get(categoryKeys[0].ToString()) as string; 

    bool skipSetup = (!string.IsNullOrEmpty(category) && category.Equals(SKIP_SETUP)) ? true : false; 

    return skipSetup; 
} 

[SetUp] 
public void Setup() 
{ 
    // Your setup code 
} 

[Test] 
public void WithoutSetupTest() 
{ 
    // Code without setup 
} 

[Test] 
[Category(SKIP_SETUP)] 
public void CodeWithSetupTest() 
{ 
    // Code that require setup 
} 
Cuestiones relacionadas