2013-01-24 10 views
9

ho una classe di test di base contenente alcuni casi di test e alcune prove ordinarie:casi di test NUnit non eseguito dalla classe ereditata

[TestFixture] 
public abstract class TestBase 
{ 
    [TestCase(1)] 
    [TestCase(2)] 
    [TestCase(3)] 
    public void TestA(int value) 
    { 
    // Perform test 
    } 

    [Test] 
    public void TestB() 
    { 
    // Perform test 
    } 
} 

Questi test è gestita da classi figlie che definiscono l'ambiente in modi diversi. Le classi figlio contengono solo metodi di configurazione, nessun test.

[TestFixture] 
public class LocalDatabaseTest : TestBase 
{ 
    [SetUp] 
    public void SetUp() 
    { 
    // Set up environment to use local db 
    } 
} 

sto usando ReSharper 6.1.1000.82 per eseguire tutte le prove in LocalDatabaseTest, ma solo vengono eseguiti i test ordinari. I test che utilizzano TestCase non ottengono alcun risultato. Se si seleziona Esegui tutto su TestA nella classe TestBase, vengono eseguiti tutti i test case (comprese le altre classi figlio). Sto usando NUnit 2.6.2.12296. Qualche idea su cosa ho fatto di sbagliato?

risposta

7

Non hai fatto nulla di sbagliato.

Se si apre la DLL di test tramite il programma di test NUnit, tutti i test vengono eseguiti correttamente.
(Ho appena verificato il codice con NUnit 2.6.2).

Riguardo alla ragione di ignorare i test parametrizzati su Resharper: Sembra che ci sia un problema con il runner di test di Resharper che causa tale comportamento.
Quindi, il mio suggerimento è di utilizzare NUnit per eseguire test parametrizzati.

Btw, Resharper 7 supporta meglio i test parametrizzati NUnit. E probabilmente questo problema non apparirà nell'ultima versione di Resharper.

+0

Ok, sembra che sia ora di effettuare l'aggiornamento a ReSharper 7 quindi ... :-) – Anlo

+2

Questo non è stato risolto in 7.1 in VS 2012. Tuttavia, +1 per averlo indicato. Mi stava facendo impazzire perché si stava rivelando inconcludente senza motivo –

Problemi correlati