AntonioGanci

Il blog di Antonio Ganci
posts - 201, comments - 420, trackbacks - 31

lunedì 28 marzo 2011

Test automatico per verificare che l'html non contenga errori

Dopo che ci è scappato un errore nell'html del sito su cui stiamo lavorando, abbiamo deciso di scrivere un test che validi l'html prodotto.

Per raggiungere l'obiettivo utilizziamo l'utility Tidy che si puo' scaricare da qui

È un piccolo eseguibile a cui si puo' passare un html e verificare che non contenga errori.

Il codice del test è piuttosto semplice:

[Test]
public void ValidateHtml()
{
    var html = new WebClient().DownloadString(@"http://someurl.com");

    process = new Process();
    process.StartInfo.FileName = "tidy.exe";
    process.StartInfo.Arguments = "-e";
    process.StartInfo.UseShellExecute = false;
    process.StartInfo.CreateNoWindow = true;
    process.StartInfo.RedirectStandardError = true;
    process.StartInfo.RedirectStandardInput = true;
    process.Start();
    process.StandardInput.Write(html);
    process.StandardInput.Close();
    process.WaitForExit();
    
    Assert.That(_process.ExitCode, Is.EqualTo(0), _process.StandardError.ReadToEnd());
}

 

Il processo viene creato redirigendo lo standard input e lo standard error, il primo usato per inviare l'html, mentre il secondo come messaggio di errore nel caso l'Assert fallisca. L'output di tidy è piuttosto esplicativo e ci permette di correggere velocemente gli errori individuati.

l'opzione -e indica di mostrare solo gli errori, altrimenti tidy puo' anche provare a correggerli, opzione che non utilizziamo.

La documentazione sulle opzioni supportate da tidy la trovate qui.

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (1) | Filed Under [ Tips ]

Powered by:
Powered By Subtext Powered By ASP.NET