Question

Je suis à la recherche d'un cadre de test pour introduire des tests automatisés pour une langue sans le soutien de test beaucoup . Pour autant que je peux comprendre, je besoin d'un cadre qui est capable d'exécuter les tests de VDF en utilisant une certaine forme de protocole. Je préfère passer mes beaucoup de tests d'écriture de temps que l'écriture de code VDF à l'interface avec le framework de test, donc un protocole léger est beaucoup plus préféré.

Slim avec Fitnesse semble être un beau candidat, mais je suis intéressé tous recommandations.

Le fait de pouvoir utiliser le même cadre de test dans les langages de programmation serait un atout supplémentaire.

Était-ce utile?

La solution

Cela suppose que vous travaillez au niveau de l'API. Si je lis mal, et que vous travaillez au niveau de l'interface graphique, vous êtes plus enclins à considérer quelque chose comme le sélénium ou watir.

Avez-vous songé à écrire votre propre framework de test simple qui délivre les résultats de la TAP (le protocole de test quoi que ce soit) - puis avec l'analyse que mouture ou TAP2HTML

?

Sérieusement, la sortie TAP ressemble à ceci:

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.

(Si elle est morte après l'étape 5, la 1..7 voulez-vous dire quelque chose qui ne va pas)

La sortie est ASCII droite. Vous avez essentiellement deux globals numTestsTotal et numTestExecuted, et écrire des fonctions comme ceci:

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

Vous écrivez le code régulier dans une bibliothèque, votre application de test incluent la bibliothèque et le module de test.

Vous pouvez surcharger eq pour chaque type de valeur, et d'écrire est de comparer les tableaux, etc.

Voir la documentation sur TAP: http://testanything.org/wiki/index.php/Main_Page

Test :: Plus

Oui, on pourrait dire que l'équation () "juste" doit appeler ok (). Ou vous pouvez insérer les résultats escomptés et réels dans la sortie. Jusqu'à vous.

Quoi qu'il en soit, il y a beaucoup de TAP et parseurs interprètes pour des langues plus impératives.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top