Skip to main content

자동 채점 사용

과제 리포지토리에서 실행되도록 테스트를 구성하여 학생의 코드 제출에 대한 피드백을 자동으로 제공할 수 있습니다.

누가 이 기능을 사용할 수 있나요?

Organization owners who are admins for a classroom can set up and use autograding on assignments in a classroom. 클래스룸 관리자에 대한 자세한 내용은 "클래스룸 관리"을 참조하세요.

자동 채점 정보

자동 채점 기능을 사용하여 GitHub Classroom의 할당에 대한 학생의 작업을 자동으로 확인할 수 있습니다. 할당에 대한 테스트를 구성하면 학생이 GitHub.com의 할당 리포지토리에 푸시할 때마다 테스트가 즉시 실행됩니다. 학생은 테스트 결과를 보고, 변경하고, 푸시하여 새 결과를 볼 수 있습니다.

학생이 과제를 수락한 후 과제 리포지토리(또는 교사 정의 일정)로 푸시할 때마다 GitHub Actions는 학생의 최신 코드가 포함된 Linux 환경에서 자동 채점 테스트에 대한 명령을 실행합니다. GitHub Classroom은 GitHub Actions에 필요한 워크플로를 만듭니다. GitHub Actions에 대한 자동 채점 경험이 없어도 자동 채점을 사용할 수 있지만 필요에 따라 워크플로 구성을 선택적으로 수정할 수 있습니다. 워크플로 및 GitHub Actions에 대한 자세한 내용은 GitHub Actions를 사용한 연속 통합 정보을(를) 참조하세요.

테스트 프레임워크를 사용하거나, 사용자 지정 명령을 실행하거나, 입출력 테스트를 작성하거나, 다양한 테스트 방법을 결합할 수 있습니다. 자동 채점을 위한 Linux 환경에는 인기 있는 많은 소프트웨어 도구가 포함됩니다. 자세한 내용은 GitHub 호스팅 실행기 사용에서 최신 버전의 Ubuntu에 대한 세부 정보를 참조하세요.

GitHub Classroom에서 과제로 이동하여 자동 채점 테스트를 통과하는 학생의 개요를 볼 수 있습니다. 녹색 확인 표시는 학생에 대한 모든 테스트에 통과하고 있음을 의미하며 빨간색 X는 학생에 대한 일부 또는 모든 테스트가 실패하고 있음을 의미합니다. 하나 이상의 테스트에 대해 점수를 부여하는 경우 거품은 과제에 대해 가능한 최대 점수 중 테스트의 점수를 표시합니다.

채점 방법

GitHub Classroom은(는) GitHub Actions 워크플로를 직접 구성하지 않으려는 경우 사용할 수 있는 다양한 자동 채점 테스트 사전 설정을 제공합니다. 사용자 지정 GitHub Actions YAML을 사용하여 자신만의 자동 채점 워크플로를 정의할 수도 있습니다.

GitHub 사전 설정 사용

GitHub Actions에 대한 지식이 없어도 사전 설정을 사용할 수 있습니다. 자동 채점 시험에 대한 정보를 입력하면 GitHub Classroom이(가) 필요한 파일을 학생 과제 리포지토리에 자동으로 추가합니다.

입력/출력 테스트, python 테스트 및 명령 테스트 실행의 세 가지 사전 설정 유형이 있습니다.

입출력 테스트

입출력 테스트는 필요에 따라 설치 명령을 실행한 다음, 테스트 명령에 표준 입력을 제공합니다. GitHub Classroom은 예상 결과를 기준으로 테스트 명령의 출력을 평가합니다.

설정설명
테스트 이름로그에서 테스트를 식별하기 위한 테스트의 이름
설치 명령선택 사항. 컴파일 또는 설치와 같이 테스트 전에 실행할 명령
명령 실행테스트를 실행하고 평가를 위한 표준 출력을 생성하는 명령
입력실행 명령에 대한 표준 입력
예상 출력실행 명령에서 표준 출력으로 표시하려는 출력
비교실행 명령의 출력과 예상 출력 간 비교 유형

  • 포함됨: 예상 출력이 표시될 때 통과
    실행 명령의 표준 출력에 있는 위치
  • 정확하게 일치: 예상 출력이 실행 명령의 표준 출력과
    완전히 동일할 때 통과
  • Regex: 예상 출력의 정규식이 실행 명령의
    표준 출력과 일치하는 경우 통과
시간 제한몇 분 안에 오류가 발생하기 전에 테스트를 실행해야 하는 기간
포인트선택 사항. 총 점수에 대해 테스트할 가치가 있는 점수

Python 테스트

Python 테스트는 설치 명령을 실행한 다음 pytest를 실행합니다. 수여되는 점수 수는 학생이 통과하는 pytest 테스트 도구 모음의 테스트 수에 따라 달라집니다. 각 테스트는 동일한 점수의 가치가 있으며, Points 설정을 변경하여 전체 테스트 세트의 점수를 변경할 수 있습니다.

설정설명
테스트 이름로그에서 테스트를 식별하기 위한 테스트의 이름
설치 명령선택 사항. 컴파일 또는 설치와 같이 테스트 전에 실행할 명령. 일부 종속성은 이미 설치되어 있지만, 필요한 경우 더 설치할 수 있습니다. sudo를 사용할 필요는 없으며 pip3 대신 pip를 사용해야 합니다.
명령 실행테스트를 실행하고 평가를 위한 종료 코드를 생성하는 명령
시간 제한몇 분 안에 오류가 발생하기 전에 테스트를 실행해야 하는 기간
포인트선택 사항. 전체 pytest 제품군의 총 점수입니다. 각 테스트는 Points / number_of_tests의 가치가 있습니다.

실행 명령 테스트

실행 명령 테스트는 설치 명령을 실행한 다음, 테스트 명령을 실행합니다. GitHub Classroom은 테스트 명령의 종료 상태를 확인합니다. 종료 코드가 0이면 성공이고 다른 종료 코드이면 오류가 발생합니다.

GitHub Classroom은 다양한 프로그래밍 언어의 언어별 실행 명령 테스트에 대한 사전 설정을 제공합니다. 예를 들어, 실행 노드 테스트는 설치 명령을 npm install로 미리 채우고 테스트 명령을 npm test로 미리 채웁니다.

설정설명
테스트 이름로그에서 테스트를 식별하기 위한 테스트의 이름
설치 명령선택 사항. 컴파일 또는 설치와 같이 테스트 전에 실행할 명령
명령 실행테스트를 실행하고 평가를 위한 종료 코드를 생성하는 명령
시간 제한몇 분 안에 오류가 발생하기 전에 테스트를 실행해야 하는 기간
포인트선택 사항. 총 점수에 대해 테스트할 가치가 있는 점수

사용자 지정 GitHub Actions 워크플로 사용

사전 설정을 사용하는 대신 시작 코드 리포지토리에 있는 .github/workflows/classroom.yml파일에 GitHub Actions 워크플로를 추가할 수도 있습니다.

과제 편집 페이지에서 GitHub 사전 설정 대신 사용자 지정 YAML을 선택하여 .github/workflows/classroom.yml 파일을 직접 편집할 수 있습니다. 워크플로 파일로 변환을 클릭하면 시작 코드 리포지토리에 변경 사항을 커밋하라는 메시지가 표시됩니다. 이 동기화는 시작 코드 리포지토리가 강의실과 동일한 조직에 있는 경우에만 작동합니다. 시작 코드 리포지토리가 다른 조직에 있는 경우 .github/workflows/classroom.yml 파일을 수동으로 편집해야 합니다.

과제에 대한 자동 채점 테스트 구성

새 과제를 만드는 동안 자동 채점 테스트를 추가할 수 있습니다. 자세한 내용은 "개별 과제 만들기" 또는 "그룹 과제 만들기"을 참조하세요.

기존 과제에 대한 자동 채점 테스트를 추가, 편집 또는 삭제할 수 있습니다. 클래스룸 UI를 통해 변경된 모든 내용은 기존 학생 리포지토리로 푸시되므로 테스트를 편집할 때 주의해야 합니다.

  1. GitHub Classroom에 로그인합니다.

  2. 교실 목록에서 보려는 교실을 클릭합니다.

  3. 편집할 할당의 오른쪽에서 을 클릭합니다.

  4. 왼쪽 사이드바에서 채점 및 피드백을 클릭합니다.

  5. 자동 채점 테스트를 추가, 편집 또는 삭제합니다.

    • 테스트를 추가하려면 “자동 채점 테스트 추가”에서 테스트 추가 드롭다운 메뉴를 선택한 다음, 사용할 채점 방법을 클릭합니다. 테스트를 구성한 다음 테스트 사례 저장을 클릭합니다.

    • 테스트를 편집하려면 테스트 이름 오른쪽에 있는 을 클릭합니다. 테스트를 구성한 다음 테스트 사례 저장을 클릭합니다.

    • 테스트를 삭제하려면 테스트 이름 오른쪽에 있는 을 클릭합니다.

  6. 페이지 아래쪽에서 과제 업데이트를 클릭합니다.

자동 채점 테스트를 실행하는 경우의 구성

기본적으로 자동 채점 시험은 학생이 GitHub.com에서 과제 리포지토리로 푸시할 때마다 자동으로 실행됩니다. 하지만 GitHub Actions분을 관리하고 싶다면 이 동작을 변경할 수 있습니다.

  1. GitHub Classroom에 로그인합니다.
  2. 교실 목록에서 보려는 교실을 클릭합니다.
  3. 편집할 할당의 오른쪽에서 을 클릭합니다.
  4. 왼쪽 사이드바에서 채점 및 피드백을 클릭합니다.
  5. 자동 채점 테스트 목록 아래에서 자동 채점 테스트를 실행할 때 구성할 수 있습니다.
    • 학생이 과제를 제출할 때마다: 기본 동작입니다.
    • 일정에 따라: 자동 채점 테스트를 실행할 시간을 매일 또는 매주 설정할 수 있습니다.
    • 수동: 자동 채점 테스트 실행은 할당 대시보드에서 사용자가 수동으로 트리거합니다.

자동 채점 테스트의 결과 보기 및 다운로드

자동 채점 결과 다운로드

개요 페이지의 "다운로드" 단추를 사용하여 학생의 과제에 대한 세부 정보가 포함된 CSV를 다운로드할 수 있습니다. 이렇게 하면 학생의 리포지토리, 해당 GitHub 핸들, 명단 식별자, 제출 타임스탬프, 자동 채점 점수의 링크가 포함된 CSV가 생성되고 다운로드됩니다.

개별 로그 보기

  1. GitHub Classroom에 로그인합니다.
  2. 교실 목록에서 보려는 교실을 클릭합니다.
  3. 할당 목록에서 보려는 할당을 클릭합니다.
  4. 제출의 오른쪽에서 을(를) 클릭합니다.
  5. 테스트 출력을 검토합니다. 자세한 내용은 워크플로 실행 로그 사용을(를) 참조하세요.

추가 참고 자료