A collection of parameterizable tests for automatic grading.
Project description
Generic Grader
A collection of generic tests for grading programming assignments.
This project is still in very early development. Expect breaking changes.
Installation
pip install generic-grader
Usage
-
Name the reference solution
reference.py
, and place it in atests
subdirectory of the directory containing the student's code. -
Add a configuration file for the assignment in the
tests
subdirectory (e.g.tests/config.py
). It might look something like this:from parameterized import param from generic_grader.style import comments # Import the tests you want to use from generic_grader.utils.options import Options # Create tests by calling each test type's build method. # They should all start with the word `test_` to be discovered by unittest. # Adding a number after `test_` can be used to control the run order. # The argument is a list of `param` objects, each with an `Options` object. # See the Options class for more information on the available options. test_01_TestCommentLength = comments.build( [ param( Options( sub_module="hello_user", hint="Check the volume of comments in your code.", entries=("Tim the Enchanter",), ), ), param( Options( sub_module="hello_user", hint="Check the volume of comments in your code.", entries=("King Arthur",), ), ), ] )
-
Run the tests.
python -m unittest tests/config.py
Contributing
-
Clone the repo onto your machine.
-
HTTPS
git clone https://github.com/Purdue-EBEC/generic-grader.git
-
SSH
git clone git@github.com:Purdue-EBEC/generic-grader.git
-
-
Set up a new virtual environment in the cloned repo.
cd generic-grader python3.12 -m venv .env3.12
-
Activate the virtual environment. If you are using VS Code, there may be a pop-up to do this automatically when working from this directory.
-
Linux/macOS
source .env3.12/bin/activate
-
Windows
.env3.12\Scripts\activate
-
-
Install tesseract-ocr
-
on Linux
sudo apt install tesseract-ocr
-
on macOS
brew install tesseract
-
on Windows, download the latest installers from https://github.com/UB-Mannheim/tesseract/wiki
-
-
Install the package. Note that this installs the package as editable, so edits will be automatically reflected in the installed package.
pip install -e .[dev]
-
Install the pre-commit hooks.
pre-commit install
-
Run the tests.
pytest
-
Make changes ...
-
Deactivate the virtual environment.
deactivate
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for generic_grader-0.1.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | afa88ebf732f77dcf53b5a76f8ec5946a8cdcad2b4c885e8994896f73a6e34a8 |
|
MD5 | 99db2b9d9a69b66bb2e17e1e679b75d2 |
|
BLAKE2b-256 | 8651fb9b592adbff9b39c1cb6bba74386e2544692297ec36bffc96a5ea308c84 |