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 obter mais informações 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 "Sobre 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 "Usar 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 estão passando para o aluno, e um X vermelho significa que alguns ou todos os testes estão falhando para o aluno. Se você ganhou pontos para um ou mais testes, uma bolha irá mostrar a pontuação para os testes da pontuação máxima possível para a atividade.

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 o YAML 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 para um resultado esperado.

ConfiguraçãoDescrição
Nome do testeO nome do teste, para identificar o teste em registros
Comando de configuraçãoOpcional. 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: é 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: é transmitido se a expressão regular na saída esperada
    corresponde à saída padrão do comando de execução
Tempo LimiteQuanto tempo um teste deve ser executado em minutos antes de resultar em falha
PontosOpcional. 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çãoOpcional. 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 LimiteQuanto tempo um teste deve ser executado em minutos antes de resultar em falha
PontosOpcional. 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 comando de execução 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 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çãoOpcional. 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 LimiteQuanto tempo um teste deve ser executado em minutos antes de resultar em falha
PontosOpcional. 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 atribuição

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 enviar por push para um repositório de tarefas no GitHub.com. No entanto, se você quiser gerenciar seus minutos do GitHub Actions, pode 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: 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ê também pode fazer o download do CSV da pontuação da autoavaliação dos seus alunos por meio do botão "Download". 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 um envio, clique em .
  5. Revise a saída de teste. Para obter mais informações, confira "Usando logs de execução de fluxo de trabalho".

Leitura adicional