2009-03-13 6 views
1

Il y a une équipe qui travaille sur les tests d'acceptation de l'application X11 GUI dans notre société, et ils ont créé un cadre de test d'acceptation monstrueux qui gère l'interface graphique ainsi que des scénarios d'exécution.Pouvez-vous revoir ma réécriture Perl de Cucumber?

La structure est écrite à l'aide de Perl 5 et les fichiers de scénario ressemblent plus à des programmes Perl très complexes (des milliers de lignes avec un style de programmation procédurale) que des tests d'acceptation.

J'ai récemment appris le concombre de Ruby, et en général j'utilise Ruby depuis pas mal de temps. Mais malheureusement, je ne peux pas juste pousser Ruby pour remplacer Perl parce que les gens qui écrivent tout cela ne connaissent pas Ruby et il est certain qu'ils ne veulent pas de ce genre d'interruption. Donc, pour rapprocher le concombre de Ruby de leur travail, je l'ai réécrit en utilisant Perl 5. Malheureusement, je ne suis pas vraiment un programmeur Perl, et j'adorerais avoir une révision de code et entendre les suggestions de personnes qui connaissent Perl et le concombre.

Bonjour les utilisateurs de Perl/Cucumber StackOverflow - aidez-moi à créer cette tentative "open source" de recréer du concombre pour Perl! J'aimerais entendre vos commentaires et accepter toute aide acceptable.

Le code source est minimale ici:

http://github.com/kesor/p5-cucumber 

Nous vous remercions de votre attention.

Pour ceux qui ne connaissent pas bien le concombre - s'il vous plaît juste prendre un petit moment pour jeter un oeil à cette petite petite page: http://cukes.info/

+2

Il serait utile si vous avez dit aux gens de Perl ce qu'est le concombre. – innaM

+0

Est-ce que les utilisateurs de BDD/Cucumber écrivent réellement ces convertisseurs personnalisés (p5-cucumber.pl dans votre exemple) pour convertir les scénarios de texte brut stylisés en code de test? – spazm

+0

J'ai lu tout le code github, il semble assez solide. Je suis intrigué par l'analyseur. – spazm

Répondre

2

Pouvez-vous revoir mon rewrite Perl de concombre?

Réponse: Oui. J'ai lu le code github que vous avez posté. Ça a l'air plutôt bien.

Je suis curieux de connaître l'extrait suivant de Parser :: Parser.yp :: ERROR. Pourquoi avez-vous choisi d'utiliser "et do {}" sur "if() {}"? Style? la portée? autre? Je n'ai pas utilisé de concombre et j'essaie toujours d'envelopper ma tête autour du modèle d'utilisation. Comment quelqu'un pourrait-il vérifier/exécuter votre exemple de calculatrice?

Si vous envisagez de publier votre code sur CPAN (et vous devriez le faire), vous devrez regrouper cette source git dans une archive tar installable. Vous voudrez inclure l'un des outils d'installation du module: ExtUtils :: MakeMaker, Module :: Build, etc. J'ai récemment commencé à utiliser Dist::Zilla, et j'en suis vraiment content.Cela m'a permis de maîtriser l'énergie d'activation de la sortie de mon premier module cpan.

20 deuxième tournée de Dist :: Zilla:

  1. téléchargez et installez Dist :: Zilla et ses besoins (il y a beaucoup, car il est un outil seul développeur)
  2. créer un dist. fichier ini du niveau haut de votre forfait ('Dzil nouveau MyPackage')
  3. run 'Dzil test', 'Džil construire' et 'Dzil libération', pour tester, (construire et test), (construire, tester et libérer)

Voir la Dist::Zilla::Tutorial

+0

Merci pour votre contribution, comme vous l'avez probablement deviné depuis que je l'ai mise à jour en dernier. À propos de l'utilisation de l'analyseur, je suis à peu près sûr que je l'ai copié à partir d'un exemple - car je ne me souviens pas vraiment pourquoi j'ai choisi de le faire de cette façon. Je me souviens d'avoir deux branches, maîtriser avec un analyseur très basique, et expérimentale avec un plus sophistiqué qui permettrait plus de fonctionnalités. Exécuter des exemples est juste cela, "p5-cucumber example_dir" où le répertoire contient des scénarios + code de test. – Evgeny

2

Est-ce que Test::A8N adapter à votre exigence?

Sinon, il y a beaucoup d'autres modules Test:: sur CPAN qui peuvent faire ce que vous cherchez.

+0

Ca a l'air sympa, mais ce n'est vraiment pas du concombre. Et j'utilise toujours les modules Test :: dans le code ... il suffit de séparer le code de test de l'histoire réelle (écrit en langage clair anglais). Le code de test peut utiliser n'importe quel framework qu'il veut réellement "tester" les conditions. – Evgeny

+0

Test :: A8N est basé sur le FIT de Ward Cunningham (http://fit.c2.com/). Il existe d'autres modules Test :: FIT * sur CPAN dont Test :: FITesque est ce que Test :: A8N est construit en haut. Le concombre semble être un sous-ensemble de ce que Test :: A8N/FIT peut faire ... donc vous pouvez l'utiliser comme base pour p5-concombre. – draegtun

+0

En fait cucumber est un sur-ensemble de ce que FIT pourrait faire, car il prend en charge à la fois la notation de table de FIT, et la notation plus naturel - langage naturel. – Evgeny

5

Vous pouvez obtenir une bonne aide sur Perlmonks. Ce site est orienté vers ce type de poste, alors que Stackoverflow est plus sur des questions directes et répondantes.

Bonne chance, :)

4

Il y a une mise en œuvre plutôt plus complète de concombre sur Perl sous la forme de Test::BDD::Cucumber.