Auto Re-esecuzione dei test che falliscono
Domanda
Ho una serie di selenio / MbUnit test che funzionano bene, ma tendo a prendere un po 'di corsa (oltre 4 ore) Un problema che sto trovando è che circa 1 su 20 di prova sembra timeout durante l'esecuzione. Ho confermato il selenio GRID sta lavorando e le di selenio RC sono tutti bene, sembra solo essere un qwerk del sistema. Quello che è veramente fastidioso, però, è che se ho eseguito di nuovo questi test che di solito passano.
Quello che voglio sapere è se c'è un modo per me di auto eseguire nuovamente il test (probabilmente nel codice), se un tipo perticular d'eccezione e 'colto in ...
Ho cercato di mettere un paio di righe di codice nel catch, ma so che questo è un modo molto hacky di ri eseguire i test. Ecco il codice:
catch (AssertionException e)
{
if (e.Message() == "TimeOut") //Something similar to this
{
this.Test();
}
else
{
verificationErrors.AppendLine(browserList[i] + " :: " + e.Message);
}
}
Qualche suggerimento?
Soluzione
Probabilmente non è una vera e propria risposta alla tua domanda, ma dal momento che il problema è legato ad un problema di timeout che si verificano durante l'esecuzione dei test, hanno si è tentato di modificare il valore di timeout predefinito (di 10 minuti credo) utilizzando TimeoutAttribute
?
[TestFixture, Timeout(3600)] // Use 1 hour instead.
public class MyTestFixture
{
// ...
}