Skip to main content

Usar avaliação automática

É possível fornecer feedback automaticamente sobre envios de código de seus alunos configurando testes para serem executados no repositório de atividade.

Quem pode usar esse recurso?

Organization owners who are admins for a classroom can set up and use autograding on assignments in a classroom. Para saber mais sobre administradores da classe, confira Gerenciar salas de aula.

Sobre a avaliação automática

Você pode usar a avaliação automática para verificar automaticamente o trabalho de um aluno para uma atividade em GitHub Classroom. Você configura testes para uma atribuição e eles são executados imediatamente sempre que um aluno faz um envio por push para um repositório de atribuição no GitHub.com. O aluno pode visualizar os resultados do teste, fazer mudanças e fazer push para ver novos resultados.

Após um aluno aceitar uma tarefa, a cada envio para o repositório de tarefas (ou em um cronograma definido pelo professor), o GitHub Actions executa os comandos para o seu teste de correção automática em um ambiente Linux contendo o código mais recente do aluno. GitHub Classroom cria os fluxos de trabalho necessários para GitHub Actions. Você não precisa de experiência GitHub Actions para usar a classificação automática, mas opcionalmente pode modificar as configurações de fluxo de trabalho para atender às suas necessidades. Para obter mais informações sobre fluxos de trabalho e GitHub Actions, consulte Integração contínua.

Pode usar uma estrutura de teste, executar um comando personalizado, escrever testes de entrada/saída ou combinar diferentes métodos de teste. O ambiente Linux para avaliação automática contém muitas ferramentas de software populares. Para mais informações, confira os detalhes da versão mais recente do Ubuntu em Executores hospedados no GitHub.

Você pode ver uma visão geral de quais alunos estão passando nos testes de correção automática navegando até a tarefa no GitHub Classroom. Uma marca de verificação verde significa que todos os testes foram aprovados pelo aluno, e um X vermelho significa que alguns ou todos os testes foram reprovados pelo aluno. Se você atribuir pontos para um ou mais testes, uma bolha irá mostrar a pontuação dos testes em relação à pontuação máxima possível para a tarefa.

Métodos de avaliação

GitHub Classroom fornece diferentes predefinições de teste de classificação automática que podem ser usadas se você não quiser configurar GitHub Actions fluxos de trabalho por conta própria. Você também pode optar por usar YAML personalizado GitHub Actions para definir seu próprio fluxo de trabalho de classificação automática.

Como usar predefinições GitHub

Você pode usar predefinições sem nenhum conhecimento de GitHub Actions. Você pode inserir informações sobre seus testes de correção automática, e o GitHub Classroom adicionará automaticamente os arquivos necessários aos repositórios de tarefas dos alunos.

Existem três tipos de predefinições: testes de entrada/saída, testes python e testes de comando de execução.

Teste de entrada/saída

Um teste de entrada/saída opcionalmente executa um comando de configuração e, em seguida, fornece a entrada padrão para um comando de teste. GitHub Classroom avalia a saída do comando de teste em relação a um resultado esperado.

ConfiguraçãoDescrição
Nome do testeO nome do teste, para identificar o teste em registros
Comando de configuração
Opcional. Um comando a ser executado antes dos testes, como compilação ou instalação
Comando de execuçãoO comando para executar o teste e gerar saída padrão para avaliação
EntradasEntrada padrão para o executar o comando
Saída esperadaA saída que você quer ver como saída padrão do comando de execução
ComparaçãoO tipo de comparação entre a saída do comando de execução e a saída esperada

  • Incluído: aprovado quando a saída esperada aparece
    em qualquer lugar da saída padrão do comando de execução
Exato: é transmitido quando a saída esperada é completamente idêntica
à saída padrão do comando de execução
  • Regex: aprovado se a expressão regular for a esperada
    A saída corresponde à saída padrão do comando "run".
  • Tempo LimitePor quantos minutos um teste deve ser executado antes de resultar em falha?
    Pontos
    Opcional. O número de pontos que o teste vale para uma pontuação total

    Teste do Python

    Um teste Python executa um comando de configuração e, em seguida, executa pytest. O número de pontos atribuídos dependerá do número de testes do conjunto de testes pytest em que o aluno for aprovado. Cada teste vale o mesmo número de pontos. Você pode alterar quantos pontos vale todo o conjunto de testes alterando a configuração Points.

    ConfiguraçãoDescrição
    Nome do testeO nome do teste, para identificar o teste em registros
    Comando de configuração
    Opcional. Um comando a ser executado antes dos testes, como compilação ou instalação.
    Algumas dependências já estão instaladas, mas você pode instalar outras, se necessário. Você não precisa usar sudo e deve usar pip em vez de pip3.
    Comando de execuçãoO comando para executar o teste e gerar um código de saída para avaliação
    Tempo LimitePor quantos minutos um teste deve ser executado antes de resultar em falha?
    Pontos
    Opcional. O número total de pontos que todo o conjunto do pytest vale. Cada teste valerá Points / number_of_tests

    Executar teste de comando

    Um teste de comando run executa um comando de configuração e, em seguida, executa um comando de teste. GitHub Classroom verifica o status de saída do comando de teste. O código de saída 0 resulta em sucesso, e qualquer outro código de saída resulta em falha.

    GitHub Classroom fornece configurações predefinidas para testes de comandos de execução específicos para cada linguagem de programação. Por exemplo, o teste Executar nó preenche o comando de instalação com npm install e o comando de teste com npm test.

    ConfiguraçãoDescrição
    Nome do testeO nome do teste, para identificar o teste em registros
    Comando de configuração
    Opcional. Um comando a ser executado antes dos testes, como compilação ou instalação
    Comando de execuçãoO comando para executar o teste e gerar um código de saída para avaliação
    Tempo LimitePor quantos minutos um teste deve ser executado antes de resultar em falha?
    Pontos
    Opcional. O número de pontos que o teste vale para uma pontuação total

    Usando um fluxo de trabalho personalizado GitHub Actions

    Em vez de usar predefinições, você também pode adicionar qualquer GitHub Actions fluxo de trabalho ao .github/workflows/classroom.yml arquivo em seu repositório de código inicial.

    Você pode editar o arquivo .github/workflows/classroom.yml diretamente da página de edição da tarefa selecionando YAML personalizado em vez de predefinições GitHub. Clicar em Converter em arquivo de fluxo de trabalho solicitará que você confirme suas alterações no repositório de código inicial. Essa sincronização só funcionará se o repositório de código inicial estiver na mesma organização que a sala de aula. Se o repositório de código inicial estiver em outra organização, você deverá editar o arquivo .github/workflows/classroom.yml manualmente.

    Configurar testes de avaliação automática para uma tarefa

    Você pode adicionar testes de avaliação automática durante a criação de uma nova atividade. Para obter mais informações, confira Criar um trabalho individual ou Criar uma atribuição em grupo.

    Você pode adicionar, editar ou excluir testes de avaliação automática para uma atividade existente. Todas as alterações feitas por meio da interface do usuário do Classroom serão enviadas por push para os repositórios de alunos existentes. Portanto, tenha cuidado ao editar seus testes.

    1. Efetue o login em GitHub Classroom.

    2. Na lista de salas de aula, clique na sala de aula que você deseja visualizar.

    3. À direita da tarefa que você deseja editar, clique em .

    4. Na barra lateral esquerda, clique em Avaliação e comentários.

    5. Adicionar, editar ou excluir um teste de avaliação automática.

      • Para adicionar um teste, em "Adicionar testes de classificação automática", clique no menu suspenso Adicionar teste e selecione o método de classificação que você deseja usar. Configure o teste e clique em Salvar caso de teste.

      • Para editar um teste, à direita do nome do teste, clique em . Configure o teste e clique em Salvar caso de teste.

      • Para excluir um teste, à direita do nome do teste, clique em .

    6. Na parte inferior da página, clique em Atualizar tarefa.

    Configurar quando testes de autoavaliação são executados

    Por padrão, os testes de correção automática serão executados automaticamente sempre que um aluno enviar uma alteração para um repositório de tarefas no GitHub.com. No entanto, se você quiser gerenciar seus GitHub Actions minutos, poderá alterar esse comportamento.

    1. Efetue o login em GitHub Classroom.
    2. Na lista de salas de aula, clique na sala de aula que você deseja visualizar.
    3. À direita da tarefa que você deseja editar, clique em .
    4. Na barra lateral esquerda, clique em Avaliação e comentários.
    5. Abaixo de sua lista de testes de avaliação automática, você pode configurar quando testes de avaliação automática são executados.
      • Todas as vezes que um aluno envia uma tarefa: esse é o comportamento padrão.
      • Com base em um cronograma: você pode definir um horário todos os dias ou todas as semanas para que os testes de autoavaliação sejam executados.
      •           **Manualmente:** a execução automática dos testes será acionada manualmente por você no painel de tarefas.
        

    Visualizar e fazer o download de resultados de testes de autoavaliação

    Fazer o download dos resultados da auto-avaliação

    Você pode baixar um CSV com detalhes dos trabalhos de seus alunos usando o botão "Download" na página de visão geral. Isso irá gerar e fazer o download de um CSV que contém um link para o repositório do aluno, seu gerenciador de GitHub, identificador da lista de participantes, registro de hora de envio e pontuação de da autoavaliação.

    Ver registros individuais

    1. Efetue o login em GitHub Classroom.
    2. Na lista de salas de aula, clique na sala de aula que você deseja visualizar.
    3. Na lista de atividades, clique na atividade que você deseja visualizar.
    4. À direita de uma submissão, clique em .
    5. Revisar a saída de teste. Para saber mais, confira Usando registros de execução de fluxo de trabalho.

    Leitura adicional