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.

Depois que um aluno aceita uma atividade, em cada push para o repositório de atividades (ou em uma programação definida pelo professor), GitHub Actions executa os comandos do seu teste de avaliação automática em um ambiente Linux que contém o código mais novo do aluno. GitHub Classroom cria os fluxos de trabalho necessários para GitHub Actions. Você não precisa de experiência com o GitHub Actions para usar a avaliação automática, mas pode, opcionalmente, modificar as configurações do fluxo de trabalho para atender às suas necessidades. Para obter mais informações sobre fluxos de trabalho e GitHub Actions, confira 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 ter uma visão geral dos alunos que estão passando testes de avaliação automática acessando a atividade em 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

O GitHub Classroom fornece diferentes predefinições de teste de autogradação que podem ser usadas se você não quiser configurar GitHub Actions fluxos de trabalho sozinho. Você também pode optar por usar um YAML personalizado do GitHub Actions para definir seu próprio fluxo de trabalho de autogradação.

Usando predefinições do GitHub

Você pode usar predefinições sem qualquer conhecimento do GitHub Actions. Você pode inserir informações sobre seus testes de autoavaliação, 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 comparando-a a um resultado esperado.

ConfiguraçãoDescrição
          **Nome do teste** | O 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ção | O comando para executar o teste e gerar saída padrão para avaliação | | Entradas | Entrada padrão para o executar o comando | | Saída esperada | A saída que você quer ver como saída padrão do comando de execução | | Comparação | O tipo de comparação entre a saída do comando de execução e a saída esperada

  • Incluído: é transmitido quando a saída esperada é exibida
    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: passa se a expressão regular estiver na esperada
    A saída corresponde à saída padrão do comando "run".
| | Tempo Limite | Por 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 teste** | O 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ção | O comando para executar o teste e gerar um código de saída para avaliação | | Tempo Limite | Por quantos minutos um teste deve ser executado antes de resultar em falha | | Pontos | Opcional. O número total de pontos que todo o conjunto pytest tem. 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 predefinições para testes de comando de execução específicos da linguagem para uma variedade de linguagens de programação. Por exemplo, o teste nó de execução preenche o comando de configuração com npm install e o comando de teste com npm test.

ConfiguraçãoDescrição
          **Nome do teste** | O 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ção | O comando para executar o teste e gerar um código de saída para avaliação | | Tempo Limite | Por 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 do GitHub Actions

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

Você pode editar o arquivo .github/workflows/classroom.yml diretamente da página de edição de atribuição selecionando YAML personalizado em vez de GitHub presets. 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, testes de avaliação automática serão executados automaticamente sempre que um aluno fizer um push para um repositório de projeto no GitHub.com. No entanto, se você quiser gerenciar seus minutos do GitHub Actions, pode modificar 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: as execuções de teste de avaliação automática serão acionadas manualmente por você a partir do painel de atribuições.

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

  •         [Documentação do GitHub Actions](/actions)