Grading

This section offers a comprehensive guide on how to run the provided tests to verify the correctness of your assignment solution. It also gives an overview regards the grading process, including the criteria used for assessment. Additionally, it denotes “protected files and paths” that must remain unchanged, ensuring you avoid any point deductions due to modifications of restricted files.

Protected Files and Paths

Certain files and paths are “protected” and must stay untouched at any given time. Altering any of these will result in your repository receiving a permanent non-removable flag indicating changes to protected files, leading to point deductions. This restriction extends to creating, renaming, or deleting files or directories in these protected areas. The provided .gitignore file is designed to help prevent unintentional commits of changes to protected files.

Files and Paths you must leave unmodified

  • .github/**/*

  • pom.xml

  • assX-X/src/test/**/* (will be modified in some assignments)

It is your responsibility to ensure that none of the protected files or paths are modified. In the worst-case scenario, changes to protected files may result in a final score of 0 points.

Grading Workflow with GitHub

Grading is conducted entirely through GitHub via the Grading Workflow. You are required to submit your code solution to the assignment’s remote repository created by GitHub Classroom using git push. Only pushes to the main branch will initiate a Grading Workflow.

Important: We cannot accept any late submissions (i.e., hard deadline), so ensure your solution is pushed before the assignment deadline.

To start a Grading Workflow, push your (partial) solution to the main branch of the above stated GitHub repository. Each unit test is marked with a @GitHubClassroomGrading annotation, indicating the score achievable if the test-case result is successful. The score from the last completed Grading Workflow is the one that will count toward the final assignment grade.

Do not worry if GitHub displays a red cross - “failed”, after the Grading Workflow has finished. You will still earn points for any test-cases that passed in the Grading Workflow. If all tests pass, you will see a checkmark indicating “success”. In this case you will earn the maximum score, which is then translated to points by dividing by 20. The translated assignment points will be uploaded to TUWEL after the assignment deadline has passed.

Grading Workflow Limitation: Only one Grading Workflow can run at a time per assignment repository (i.e., per student). If you push a new code version to your repository while a Grading Workflow is still in progress, the “still in progress” Workflow will be cancelled and a new Grading Workflow for the new version will be added to the end of the waiting queue. This could lead to a longer wait time, since you may be queued behind a lot of students already waiting in the queue.

Test Suite and Local Testing

The JUnit test suite used for the Grading Workflow with GitHub is identical to the one provided in the assignment template. Since the infrastructure hosting the Grading Workflow has limited execution capacity, we highly recommend testing your solution on your local machine before pushing any changes to the remote repository’s main branch.

You can run the JUnit test suite locally to check your progress and estimate the points you may earn for the coding part. Running the entire test suite will generate a “Grading Simulation Report”, which is printed directly to the end of the output console.

Use the following commands to verify your solution:

  • mvn test -P<TestAssignment> (runs the entire test suite for an assignment)

  • mvn test -P<TestAssignment> -Dtest=<TestClassName>#<TestMethodName> (runs a specific test method)

Examples:

  • mvn test -Pass1-jpa

  • mvn test -Pass1-doc -Dtest=dst.ass1.doc.tests.Ass1_4_1GradingTest#checkIndexApplied

You will receive a grading simulation report at the end of each Maven test run. This tells you the points you can expect from our online grading workflow. It also divides them by 20 showing you the assignment points you can expect to receive for those tests passing correctly. Only the results from the final run of the online grading workflow influence the amount of points you receive for an assignment, the grading simulation is only added for your convenience.

Summary

The following highlights the necessary steps to verify your solution:

  1. Commit and push your code solution to the main branch of the repository provided by GitHub Classroom.

  2. Wait for the Grading Workflow to complete.

  3. Check the score and calculate the points by dividing by 20.

  4. Do not modify test files or any others mentioned above.