Markdown.py exigences – Tests Python

By | août 9, 2019

trouver un expert Python

J'ai décidé d'écrire mon propre script Markdown,
peut-être pour des raisons douteuses.

Je commence à être nerveux au code.

Mais avant de commencer les tests et la mise en œuvre, je dois:

  • écrire les exigences
  • écrire une implémentation de stub simple
  • écrire une stratégie de test
  • explorer les cadres de test

Enfin, ENFIN, je peux commencer à tester et à mettre en œuvre.
Je parlerai de l’expression «tester et mettre en œuvre» dans un prochain article.

Voyons les exigences.

Conditions requises pour Markdown

Structure

  1. Écrit en Python
  2. Utilisez uniquement les packages et les bibliothèques Python fournis avec une installation Python relativement standard.
  3. Tous contenus dans un fichier python

La fonctionnalité

  1. Implémentez toutes les fonctionnalités originales de Markdown.

C'est tout pour le moment.

Discussion

Tout d’abord, cet ensemble d’exigences peut paraître un peu boiteux.
Il n’ya pas grand chose là-bas.

Cependant, je pense que c’est suffisant pour commencer.
Je ne veux pas passer beaucoup de temps à écrire les exigences parce que je sais
beaucoup d'exigences de détail Nitty Gritty devraient être représentés comme
tests fonctionnels. Et je pense les écrire au moment où j’écris le
les tests fonctionnels sont la bonne voie à suivre.

S.1. Écrit en Python

Ceci est ici pour quelques raisons.

  1. Depuis que mon code de test est écrit en python, et que ce blog est consacré aux tests
    avec python, j’aimerais que le projet contienne des exemples de code en python.
    Surtout juste pour ne pas confondre le problème en ajoutant une langue supplémentaire en tant que
    exigence pour la lecture de ce site.

  2. Je veux une version de Markdown en Python pour mon propre usage. Un que je peux
    étendre pour répondre à mes propres besoins.

  3. Je veux montrer des exemples de la façon dont vous pouvez utiliser les frameworks de test python pour
    tests fonctionnels, que votre langage cible soit ou non également python.
    Les tests fonctionnels englobent les tests au niveau du système, les tests d'acceptation,
    tests de régression, et plus encore.
    Mais cela n'inclut PAS les tests unitaires.
    Les tests unitaires sont une bête en soi. Beaucoup d'écriture existe déjà pour cela
    sujet. Je ne prévois pas d’ajouter à cette pile.
    Je vais me concentrer sur les tests fonctionnels.

Je vais seulement tester le code via les interfaces externes.
Je vais écrire sur cette décision plus dans un prochain post.

S.2. Utilisez uniquement les packages et les bibliothèques Python fournis avec une installation Python relativement standard.

Cette exigence est ici parce que je veux qu'un utilisateur du script puisse le télécharger et l'exécuter juste
à peu près n'importe où sans avoir à installer aucun paquet pré-requis.
C’est l’une des belles caractéristiques du script original markdown.pl.
Je veux garder cette simplicité d'utilisation.

Qu'est-ce qu'une "installation python relativement standard"?
Dans l'ensemble, je n'en ai aucune idée.
Mais pour moi, je vais tester sur:

  • le python qui est venu pré-installé sur mon mac, lion de montagne en cours d'exécution.
  • le python que j'ai en cours d'exécution sur un ordinateur portable Linux Ubuntu.

En fin de compte, je pourrais mettre quelques numéros de version stricts autour de cette exigence.
Pour le moment, je vais simplement essayer de ne pas utiliser les packages que je dois télécharger de n’importe où.
Et laissez tous les utilisateurs du script me reprocher si je ne respecte pas cette exigence sur une plate-forme spécifique.

S.3. Tous contenus dans un fichier python

Cette exigence est ici pour la même raison que S.2.
Le fichier markdown.pl original trouvé dans Fireball est un fichier.
Un utilisateur doit simplement savoir comment exécuter un script Perl sur une ligne de commande pour l'utiliser.
Vous n'êtes pas obligé de l'installer en tant que package de site ou quoi que ce soit.
Plutôt cool.
Je veux garder cette fonctionnalité.

F.1. Implémentez toutes les fonctionnalités originales de Markdown.

Eh bien, cela semble assez évident.
Plus précisément, je ne vais pas implémenter d’extensions de syntaxe.
(tels que MultiMarkdown, MarkdownExtra ou GFM) dans la première version.

Je peux développer cette exigence pour reformuler la syntaxe.
Cependant, je peux aussi laisser cela aux dossiers de test à documenter.
Je n'ai pas encore décidé.
Je ne pense pas qu’il soit nécessaire de décider maintenant.

C'est également un exemple raisonnable d'une exigence à laquelle les développeurs sont confrontés dans le monde réel.
C'est un peu vague, et il faudra quelques recherches et des détails supplémentaires à mesure que le développement progresse.

C'est tout

C’est tout pour les besoins pour le moment.

Les exigences changent avec le temps.
Et je ne vois aucune raison pour que ce ne soit pas le cas pour ce projet.
Par conséquent, un document d'exigences est la première chose que j'ajouterai au contrôle de version.

Oui. Les exigences elles-mêmes doivent être le premier artefact suivi dans le contrôle de version pour un projet.

Ensuite, un bout

Eh bien, je ferais mieux de coder.

Inscrivez-vous à la newsletter pour suivre mes progrès.