2012-08-01 4 views
14

He pruebas unitarias escrito usando nUnit y las pruebas se estructuran de una manera similar a la del Phil Haack's postReSharper corredor de prueba unidad da dudosos en la clase externa

namespace MyNamespace 
{ 
    [TestFixture] 
    public class ClassToTest 
    { 
     [TestFixture] 
     public class MethodToTest 
     { 
      [Test] 
      public void ThrowsArgumentNullException_OnNullIndex() 
      { 
       ... 
      } 

      .. more tests for the method .. 
     } 

     [TestFixture] 
     public class AnotherMethodToTest 
     { 
      [Test] 
      public void ThrowsArgumentNullException_OnNullIndex() 
      { 
       ... 
      } 

      .. more tests for the method .. 
     } 
    } 
} 

Mi problema es que tengo concluyentes para el exterior clase que se usa para agrupar las pruebas unitarias Lo he intentado con y sin [TestFixture] en la clase externa y/o interna, pero siempre me da Inconclusive.

Creo que el comportamiento correcto debe ser mostrar los estados de prueba de unidad de las pruebas de clase interna. ¿Algunas ideas?

Inconclusive is appearing for the outer class

actualización

Una fea solución parece estar creando una prueba simulada de la clase externa y luego poner atributo Ignore en él.

[Test, Ignore] 
public void DummyTest() 
{ 
    Assert.IsTrue(true); 
} 

Actualización 2

Channs & Wayne son correctos, clase externa sólo se utiliza para agrupar, por lo que cambiar de clase en espacio de nombres es la mejor solución.

+0

Hace poco tuve una cosa simialar y fue simplemente porque había creado una prueba vacía. ¿Tienes alguna prueba vacía? –

Respuesta

7

su clase externa grupos de las métodos relacionados, sugiera reemplazarlo por un espacio de nombres.

namespace MyNamespace.ClassToTest 
{ 
    ... 
} 
+0

Gracias! Esta fue la solución correcta para el problema. Fuiste un poco más rápido que Wayne, así que lo marcaré como LA respuesta. – Tx3

+0

Tuve el mismo problema, pero necesito usar una clase base. ¿Se aplica esta solución? – thepaulpage

+0

@thepaulpage - Disculpa por la respuesta tardía. ¿Has encontrado una respuesta? ¿Quiere decir que R # muestra el resultado de la prueba como no concluyente para la clase base cuando tiene pruebas unitarias solo para la clase infantil? – Channs

6

Probablemente tenga un [TestFixture] sin [Test] s, ¿quizás la clase externa no tiene ninguna de sus propias pruebas? En ese caso, ¿por qué no usar un espacio de nombres?

+1

O tal vez el método [Test] no está marcado como público –

+0

Esto me habría vuelto loco ... ¡afortunadamente lo superpuse! – BenDundee

+0

La sugerencia de @mcl solucionó el problema que tenía. +1! – Watusimoto

1

sólo una suposición, el atributo de la clase hace que su clase para ser manejado como un testclass, pero no hay pruebas en la clase que uno mismo hace que nuestro concluyentes: sólo

[TestFixture]  
public class ClassToTest 
Cuestiones relacionadas