Dies setzt voraus, dass Sie auf der API-Ebene arbeiten. Wenn ich es falsch lese und Sie auf der GUI-Ebene arbeiten, sind Sie eher geneigt, etwas wie Selen oder Watir zu betrachten.
Haben Sie darüber nachgedacht, Ihr eigenes einfaches Testframework zu schreiben, das TAP-Ergebnisse (das test anything protocol) ausgibt - und das dann mit grind oder TAP2HTML analysiert?
Im Ernst, sieht TAP Ausgabe wie folgt:
1..7
ok 1 - hello world with null value returns 'hello world' string
ok 2 - hello world with bob returns 'hello, bob'
ok 3 - hello world with 123 return 'hello, 123'
ok 4 - hello world with 5K string return hello plus string
ok 5 - special characters
ok 6 - internationalization, fr
ok 7 - internationalization, ja
Looks like you failed 0 tests of 7.
(Wenn es nach dem Schritt 5 gestorben, die 1..7 würde Ihnen sagen, etwas falsch)
Der Ausgang ist gerade ASCII. Sie müssen grundsätzlich zwei Globals, numTestsTotal und numTestExecuted und Schreibfunktionen wie folgt aus:
sub ok (boolean bExpected, string comment) {
if (bExpected) {
print "ok " . numTestsExecuted . " " . comment . "\n";
}else {
print "not ok" . numTeststotal . " " . comment . "\n";
}
numTestsExecuted++;
}
sub eq(int iExpected, int iResult, string comment) {
if (iExpected==iResult) {
print "ok " . numTestsExecuted . " " . comment . "\n";
} else {
print "not ok" . numTestsExecuted . " " . comment . \n";
}
numTestsExecuted++;
}
Sie schreiben den regulären Code in einer Bibliothek, dann Test-App sind die Bibliothek und das Testmodul.
Sie können eq Überlastung für jede Art von Wert, und Schreiben Arrays vergleichen usw.
siehe Dokumentation auf TAP: http://testanything.org/wiki/index.php/Main_Page
Und Test::More
Ja, könnte man argumentieren, dass eq() sollte "nur" ok() aufrufen. Oder Sie könnten erwartete und tatsächliche Ergebnisse in die Ausgabe einfügen. Wie du willst.
Wie auch immer, es gibt viele TAP Parser und Interpreter für mehr Imperativ-Sprachen.
Autsch. Matt, du musst deine Formatierung reparieren. –