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 ghostscript
-
on Linux
sudo apt install ghostscript
-
on macOS
brew install ghostscript
-
on Windows, download the latest installers from https://ghostscript.com/releases/gsdnld.html
-
-
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.15-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d464f62fe6c6b168b0df29674b72042b040e1824f4aa1387d69402ab7c3b991 |
|
MD5 | 798c3e4600f3fdc27e7a0ab5f15f23c2 |
|
BLAKE2b-256 | 205379484f273bf30faec353c3ad3dc4dd3d746b6a4334605f76013e9f6895a9 |