Domanda

Sto cercando un framework di test per introdurre test automatizzati per una lingua senza molto supporto di prova . Per quanto posso capire, ho bisogno di un quadro che è in grado di eseguire le prove di VDF utilizzando una qualche forma di protocollo. Avrei preferito spendere i miei test di scrittura tempo di quanto la scrittura di codice VDF per interfacciarsi con il framework di test, in modo da un protocollo leggero è molto preferito.

sottile con Fitnesse sembra essere un bel candidato, ma mi interessa in tutti raccomandazioni.

Essere in grado di utilizzare lo stesso framework di test attraverso i linguaggi di programmazione sarebbe un ulteriore bonus.

È stato utile?

Soluzione

Questo presuppone che si sta lavorando a livello di API. Se ho letto male, e si sta lavorando a livello di interfaccia grafica, si è più portati a considerare qualcosa come selenio o watir.

Avete pensato di scrivere il proprio framework di test semplice che genera risultati TAP (il protocollo di prova nulla) - allora l'analisi che, con macinatura o TAP2HTML

?

Scherzi a parte, l'uscita TAP è simile al seguente:

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.

(Se è morto dopo il passaggio 5, il 1..7 avrebbe detto qualcosa che non va)

L'uscita è ASCII dritto. Avrete, fondamentalmente, sono due globali, numTestsTotal e numTestExecuted, e scrivere le funzioni in questo modo:

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++;
}

Si scrive il codice regolare in una libreria, allora la vostra applicazione di test includono la biblioteca e il modulo di test.

È possibile sovraccaricare eq per ogni tipo di valore, e scrivere è quello di confrontare le matrici, ecc.

Vedere documentazione su TAP: http://testanything.org/wiki/index.php/Main_Page

Test :: More

Sì, si potrebbe sostenere che eq () dovrebbe "solo" call OK (). Oppure si potrebbe inserire i risultati attesi e reali in uscita. Fino a voi.

In ogni caso, ci sono un sacco di parser TAP e interpreti per altri linguaggi imperativi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top