In my C++ course, students solve complex problems that require several files (h files, cpp files). They submit using GitHub. Currently, I use a home-built automatic grader that does the following:
- Allows students to submit a link to their GitHub repository;
- Downloads the students' code from the repository;
- Copies the instructor's files (with unit-tests) on top of the students' files;
- Runs the instructor's files and calculates the grade.