Skip to main content

Utiliser la notation automatique

Vous pouvez automatiquement fournir des commentaires sur les soumissions de code de vos étudiants en configurant des tests à exécuter dans le dépôt de devoirs.

Qui peut utiliser cette fonctionnalité ?

Organization owners who are admins for a classroom can set up and use autograding on assignments in a classroom. Pour plus d’informations sur les administrateurs de salle de classe, consultez Gérer les classes.

À propos de l’évaluation automatique

Vous pouvez utiliser la notation automatique afin de vérifier automatiquement un devoir effectué par un étudiant sur GitHub Classroom. Vous configurez des tests pour une assignation, et les tests s’exécutent immédiatement chaque fois qu’un étudiant procède à un envoi (push) vers un référentiel d’assignations sur GitHub.com. L’étudiant peut consulter les résultats des tests, apporter des modifications et procéder à des envois (push) pour consulter de nouveaux résultats.

Une fois qu’un étudiant a accepté un devoir, à chaque push vers le dépôt du devoir (ou selon une planification définie par l’enseignant), GitHub Actions exécute les commandes de votre test d’évaluation automatique dans un environnement Linux contenant la version la plus récente du code de l’étudiant. GitHub Classroom crée les flux de travail nécessaires pour GitHub Actions. Vous n’avez pas besoin d’expérience avec GitHub Actions pour utiliser l’évaluation automatique, mais vous pouvez, si vous le souhaitez, modifier les configurations du workflow en fonction de vos besoins. Pour plus d’informations sur les flux de travail et GitHub Actions, consultez Intégration continue.

Vous pouvez utiliser un framework de test, exécuter une commande personnalisée, écrire des tests d’entrée/sortie ou combiner différentes méthodes de test. L’environnement Linux pour l’évaluation automatique contient de nombreux outils logiciels populaires. Pour plus d’informations, consultez les détails de la dernière version d’Ubuntu dans Exécuteurs hébergés par GitHub.

Vous pouvez consulter un aperçu des étudiants qui réussissent les tests de notation automatique en accédant au devoir correspondant dans GitHub Classroom. Une coche verte signifie que l’étudiant réussit tous les tests, et une croix rouge signifie qu'il échoue à certains ou à tous les tests. Si vous attribuez des points à un ou plusieurs tests, une bulle montre la note des tests sur la note maximale possible du devoir.

Méthodes d’évaluation

GitHub Classroom fournit différents préréglages de tests d’évaluation automatique qui peuvent être utilisés si vous ne souhaitez pas configurer vous-même les flux de travail GitHub Actions. Vous pouvez également choisir d’utiliser un fichier YAML personnalisé GitHub Actions pour définir votre propre flux de travail de notation automatique.

Utilisation de GitHub présélections

Vous pouvez utiliser des présélections sans aucune connaissance de GitHub Actions. Vous pouvez saisir des informations sur vos tests d’évaluation automatique et GitHub Classroom ajoutera automatiquement les fichiers requis aux dépôts des devoirs des étudiants.

Il existe trois types de présélections : tests d’entrée/sortie, tests Python et tests d’exécution de commande.

Test d’entrée/sortie

Un test d’entrée/sortie exécute éventuellement une commande d’installation, puis fournit une entrée standard à une commande de test. GitHub Classroom évalue la sortie de la commande de test par rapport à un résultat attendu.

ParamètreDescription
Nom du testNom du test, pour identifier le test dans les journaux
Commande d’installation
Facultatif. Commande à exécuter avant les tests, comme la compilation ou l’installation
Commande d’exécutionCommande permettant d’exécuter le test et de générer une sortie standard pour l’évaluation
EntréesEntrée standard pour la commande d’exécution
Sortie attendueSortie que vous voulez voir comme sortie standard de la commande d’exécution
ComparaisonType de comparaison entre la sortie de la commande d’exécution et la sortie attendue

Inclus :  réussit quand la sortie attendue s’affiche
n’importe où dans la sortie standard de la commande d’exécution
  • Exact : réussit quand la sortie attendue est complètement identique
    à la sortie standard de la commande d’exécution
  • Regex : réussit si l’expression régulière est attendue
    les résultats correspondent à ceux de la sortie standard de la commande 'run'
    Délai d'expirationCombien de minutes un test devrait-il durer avant de donner lieu à un échec?
    Points
    Facultatif. Nombre de points que le test rapporte sur un score total

    Test Python

    Un test Python exécute une commande d’installation, puis exécute pytest. Le nombre de points attribués dépend du nombre de tests dans la suite de tests pytest que l’étudiant réussit. Chaque test vaut le même nombre de points. Vous pouvez modifier le nombre de points que la suite de tests entière vaut en modifiant le paramètre Points.

    ParamètreDescription
    Nom du testNom du test, pour identifier le test dans les journaux
    Commande d’installation
    Facultatif. Commande à exécuter avant les tests, comme la compilation ou l’installation.
    Certaines dépendances sont déjà installées, mais vous pouvez en installer davantage si nécessaire. Vous n’avez pas besoin d’utiliser sudo, et devriez utiliser pip au lieu de pip3.
    Commande d’exécutionCommande permettant d’exécuter le test et de générer un code de sortie pour l’évaluation
    Délai d'expirationCombien de minutes un test devrait-il durer avant de donner lieu à un échec?
    Points
    Facultatif. Le nombre total de points que vaut la suite pytest entière. Chaque test vaut Points / number_of_tests

    Test de commande d’exécution

    Un test de commande d’exécution exécute une commande d’installation, puis une commande de test. GitHub Classroom vérifie l’état de sortie de la commande de test. Le code de sortie 0 indique la réussite et tous les autres code de sortie indique l’échec.

    GitHub Classroom fournit des présélections pour les tests de commande d’exécution spécifiques au langage pour divers langages de programmation. Par exemple, le test Exécuter le nœud préremplit la commande d’installation avec npm install et la commande de test avec npm test.

    ParamètreDescription
    Nom du testNom du test, pour identifier le test dans les journaux
    Commande d’installation
    Facultatif. Commande à exécuter avant les tests, comme la compilation ou l’installation
    Commande d’exécutionCommande permettant d’exécuter le test et de générer un code de sortie pour l’évaluation
    Délai d'expirationCombien de minutes un test devrait-il durer avant de donner lieu à un échec?
    Points
    Facultatif. Nombre de points que le test rapporte sur un score total

    Utilisation d’un flux de travail personnalisé GitHub Actions

    Au lieu d’utiliser des présélections, vous pouvez également ajouter n’importe quel GitHub Actions flux de travail au .github/workflows/classroom.yml fichier dans votre référentiel de code de démarrage.

    Vous pouvez modifier directement le fichier .github/workflows/classroom.yml depuis la page de modification de l’attribution en sélectionnant YAML personnalisé au lieu de paramètres prédéfinis GitHub. Si vous cliquez sur Convertir en fichier de flux de travail, vous êtes invité à commiter vos modifications dans votre référentiel de code de démarrage. Cette synchronisation fonctionne uniquement si votre référentiel de code de démarrage se trouve dans la même organisation que votre salle de classe. Si votre référentiel de code de démarrage se trouve dans une autre organisation, vous devez modifier manuellement le fichier .github/workflows/classroom.yml.

    Configuration des tests d’évaluation automatique pour un travail

    Vous pouvez ajouter des tests d’évaluation automatique pendant la création d’un devoir. Pour plus d’informations, consultez Créer un devoir individuel ou Créer un devoir de groupe.

    Vous pouvez ajouter, modifier ou supprimer des tests d’évaluation automatique pour un devoir existant. Comme tous les changements effectués dans l’interface utilisateur de Classroom sont envoyés aux dépôts existants de l’étudiant, faites attention quand vous modifiez vos tests.

    1. Connectez-vous à GitHub Classroom.

    2. Dans la liste des classes, cliquez sur la classe que vous souhaitez afficher.

    3. À droite du devoir à modifier, cliquez sur .

    4. Dans la barre latérale gauche, cliquez sur Évaluation et commentaires.

    5. Ajoutez, modifiez ou supprimez un test d’évaluation automatique.

      • Pour ajouter un test, sous « Ajouter des tests d’évaluation automatique », sélectionnez le menu déroulant Ajouter un test, puis cliquez sur la méthode d’évaluation que vous voulez utiliser. Configurez le test, puis cliquez sur Enregistrer le cas de test.

      • Pour modifier un test, à droite du nom du test, cliquez sur . Configurez le test, puis cliquez sur Enregistrer le cas de test.

      • Pour supprimer un test, à droite du nom du test, cliquez sur .

    6. En bas de la page, cliquez sur Mettre à jour le devoir.

    Configuration de l’exécution des tests d’évaluation automatique

    Par défaut, les tests de notation automatique sont exécutés automatiquement chaque fois qu’un étudiant effectue un push vers un dépôt de devoir sur GitHub.com. Toutefois, si vous souhaitez gérer vos GitHub Actions minutes, vous pouvez modifier ce comportement.

    1. Connectez-vous à GitHub Classroom.
    2. Dans la liste des classes, cliquez sur la classe que vous souhaitez afficher.
    3. À droite du devoir à modifier, cliquez sur .
    4. Dans la barre latérale gauche, cliquez sur Évaluation et commentaires.
    5. Sous votre liste de tests d’évaluation automatique, vous pouvez configurer le moment où les tests d’évaluation automatique sont exécutés.
      • Chaque fois qu’un étudiant envoie un devoir : il s’agit du comportement par défaut.
      • Selon une planification : vous pouvez définir une heure chaque jour ou chaque semaine pour l’exécution des tests d’évaluation automatique.
      • Manuellement :  les tests d’évaluation automatique sont exécutés manuellement par vous à partir du tableau de bord de devoirs.

    Consultation et téléchargement des résultats des tests d’évaluation automatique

    Télécharger les résultats d’évaluation automatique

    Vous pouvez télécharger un fichier CSV avec des détails sur les devoirs de vos étudiants à l’aide du bouton « Télécharger » sur la page de présentation. Cela génère et télécharge un CSV contenant un lien vers le dépôt de l’étudiant, son descripteur GitHub, l’identificateur dans la liste de classe, l’horodatage d’envoi et la note d’évaluation automatique.

    Consulter les logs individuels

    1. Connectez-vous à GitHub Classroom.
    2. Dans la liste des classes, cliquez sur la classe que vous souhaitez afficher.
    3. Dans la liste des devoirs, cliquez sur le devoir à afficher.
    4. À droite d’une soumission, cliquez sur .
    5. Passez en revue la sortie du test. Pour plus d’informations, consultez « Utilisation des journaux d’exécution de flux de travail ».

    Pour aller plus loin