TP 01 - GitHub et Unit Testing

Objectifs du TP

  • L'utilisation du Git et du GitHub
  • L’utilisation du GitHub Desktop
  • Vérification automatique à l'aide de l'action github

Documentation supplémentaire

Git et GitHub

Git est un système de gestion de code source et de versionnage qui permet le travail sur un projet software. Cela fonctionne généralement sur la ligne de commande; pour Linux et MacOS, il n'y a aucun problème mais les utilisateurs de Windows ne peuvent pas utiliser “cmd” et il y a besoin d'installer “Git Bash”.

GitHub est une plateforme en ligne basée sur Git, que les développeurs peuvent utiliser pour stocker et versionner leur code source. Git est l'utilitaire utilisé, et GitHub est le serveur et l'application Web sur lesquels il s'exécute.

Création d'un compte GitHub (si vous n'en avez pas déjà un)

Si vous avez déjà un compte sur GitHub, assurez-vous d'avoir une photo avec vous sur votre profil, votre prénom et votre nom .

Si vous n'avez pas un compte, allez sur GitHub. Vous pouvez en créer un, en utilisant l'adresse de e-mail universitaire ou l'adresse personnele.

Recommandation Si vous utilisez votre adresse e-mail personnelle, vous pouvez également ajouter votre adresse e-mail universitaire pour bénéficier du pack étudiant GitHub. GitHub offre aux étudiants de nombreux avantages qui sont normalement payés. Si vous souhaitez l'utiliser, vous pouvez suivre les étapes de ce document.

Comment créer un compte?

Saisissez un nom d'utilisateur(username), une adresse e-mail et un mot de passe pour votre compte. Pour valider votre compte, accédez à votre e-mail(inbox). Vous trouverez un e-mail expliquant comment valider le compte nouvellement créé. Vérifiez section spam, aussi au cas où vous n'auriez rien reçu dans votre inbox.

Installer Git Bash

Vous devez aller sur Git et téléchargez la version de Git compatible avec votre OS. Après ça, suivez les étapes d’installation de Setup.

Réglages de base pour Git

La première étape pour utiliser Git est de configurer votre nom et votre adresse e-mail avec les commandes suivantes:

user:~$ git config --global user.name "Prenume Nume" 
user:~$ git config --global user.email "adresa_de_email@example.com"

Vous devez remplacer “Prenume Nume” avec votre prenom et nom “adresa_de_email@example.com” avec votre adresse e-mail!

La structure générale du Git

Working area est le repository dans lequel vous travaillez, il contient de nombreux fichiers, bien que tous ne puissent pas faire partie du projet final.

Staging area c'est comme un espace incomplet, c'est le lieu où vous pouvez ajouter la version d'un ou plusieurs fichiers que vous souhaitez enregistrer, c'est-à-dire faire partie de votre projet.

Repository c'est tout ce qui se trouve dans la staging area et représentera une nouvelle version du projet.

Repository

Le projet est stocké dans un repository software. Le repository contient des fichiers de projet: code source, fichiers de configuration. Il est généralement accompagné d'un fichier README.md qui contient des informations sur le projet: quel est le but du projet, comment il est compilé, sur quelles plates-formes il s'exécute. Le repository est de deux types: locale et remote. Ils peuvent être interconnectés et se référer en fait au même projet. Le référentiel local est celui que nous avons sur notre ordinateur, tandis que celui distant est stocké sur un serveur (dans notre cas GitHub). C'est juste une différence de perspective entre les deux, ils ne diffèrent pas techniquement. Habituellement, dans un projet Git / GitHub, il existe un repository central (remote) et plusieurs repositories secondaires (locaux), un pour chaque développeur de l'équipe de projet. Parmi les opérations les plus importantes avec un repository sont:init, fork, clone.

Des commandes de base

git status

Affiche l'état des modifications locales.

git add.

Ajouter des modifications à staging area.

git commit -m "message about the changes made"

Ajouter les modifications déjà du staging are dans le repository local.

git push

“Pousser” les changements de local vers github(remote repository)

git pull

Prenez les changements de remote repository.

git clone

Cloner un repository dans un nouveau répertoire.

Recommandation Pour mieux comprendre comment on utilise ces commandes, lire la documentation qui se trouve au début de TP!

Commit vs Push

Chaque commit regroupe un ensemble d'ajouts et de modifications effectués par un développeur de projet. En ayant le commits dans le repository on peut gérer le projet plus facilement, c'est à dire:

  • revenir à un commit précédent (souvent même le dernier) si les derniers changements “gâchent” le projet
  • pour voir qui est l'auteur de certains changements
  • pour créer une branche de développement séparée à partir d'un commit précédent, sur laquelle essayer une nouvelle fonctionnalité, sans affecter le reste du projet.

Enregistrer ces modifications signifie créer un commit dans le repository.

Quand on fait commit, il sera conservé dans le repository local du Git, pas dedans le repository remote du Git. Sans mise à jour le repository remote, les autres collègues ne pourront pas voir les changements que nous avons apportés. Nous voulons donc que les modifications apportées localement se retrouvent également remote. C'est-à-dire, les commits du repository local dans le repository remote. On va realiser la publication par l'operation push.

Exercices

  1. Créez un compte GitHub.
  2. Créez le repository sde-tp2 en utilisant GitHub, fait un clone et ajoute un projet du Rust (cargo init).
  3. Écrivez une application qui implémente un tableau trié de nombres. Créez une nouvelle structure de données et écrivez les fonctions add et remove.
  4. Écrivez les tests unitaires pour les fonctions add et remove.
  5. Déplacez les tests unitaires dans un module séparé nommé tests.
  6. Ajoutez un workflow GitHub qui exécute les tests unitaires.
  7. Ajoutez une fonction qui renvoie un nouveau tableau contenant tous les nombres premiers. Écrivez un test unitaire pour cela.
  8. Écrivez une fonction qui renvoie une tranche (slice) du tableau contenant tous les nombres compris entre les deux paramètres qu'elle reçoit (minimum et maximum). Écrivez un test unitaire pour cela.

Solutions

sde2/laboratoare/02_new.txt · Last modified: 2022/03/29 08:39 by alexandru.radovici
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0