Skip to content
JEdUnit is a unit testing framework with a special focus on educational aspects. It strives to simplify automatic evaluation of (small) Java programming assignments using Moodle and VPL.
Java Shell
Branch: master
Clone or download
Nane Kratzke
Nane Kratzke Updated 0.2.1
Latest commit 1c0a298 Feb 25, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.settings Basic initialization features Nov 2, 2018
build/libs Updated 0.2.1 Feb 25, 2019
gradle/wrapper Update Nov 8, 2018
src Isolated submission and evaluation logic stdout streams Feb 25, 2019
.classpath Version 0.1.14 Nov 11, 2018
.gitignore
.project Gradleized Nov 2, 2018
CHANGELOG.md Isolated submission and evaluation logic stdout streams Feb 25, 2019
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md Nov 8, 2018
LICENSE Added testing example Jul 6, 2018
build.gradle Update Nov 15, 2018
gradlew
gradlew.bat Gradleized Nov 2, 2018
init.sh Update init.sh Feb 9, 2019
pom.xml Updated pom.xml Nov 8, 2018
readme.md Update readme.md Feb 9, 2019
settings.gradle Gradleized Nov 2, 2018

readme.md

JEdUnit

JEdUnit is a unit testing framework with a special focus on educational aspects. It strives to simplify automatic evaluation of (small) Java programming assignments using Moodle and VPL.

We developed this framework mainly for our purposes in programming classes at the Lübeck University of Applied Sciences. However, this framework might be helpful for other programming instructors, and that is why this framework is provided as open source.

Usage and features

We assume the reader to be familiar with Java in general. Furthermore, we recommend to study at least the following VPL related documentation:

According to our experiences students tend to make use of the following kind of "cheats".

  • Overfitting (e.g. to map simply the test values to expected results, outside the scope of the test values the solution is useless)
  • Problem evasion (e.g. to solve a problem using loops instead of to solve it recursively)
  • Redirection (e.g. to call the reference solution instead of implement it on their own)
  • Injection (e.g. to write System.out.println("Grade :=>> 100"); System.exit(0); to get full points and prevent VPL to check the submission)

So, and in addition to "normal" unit testing frameworks, JEdUnit provides several addons to handle educational specifics that are hardly covered by current testing frameworks.

  • Checkstyle integration to foster "readable" code (OK, that is basic stuff)
  • Randomized test case generation to handle overfitting cheats.
  • Parser integration and an easy to use selector model (comparable to CSS selectors for a DOM-tree).
  • Predefined code inspections that can be switched on/off depending on assignment specifics (object-orientation, recursion, functional programming with lambdas, best practice collection handling, ...)
  • and more ...

Learn how to use it

To make use of this framework, the following workflow is recommended to set up a basic configuration for a new programming assignment. First of all, initialize a directory on your local machine and run:

curl -s https://raw.githubusercontent.com/nkratzke/JEdUnit/working/init.sh | sh

Then we recommend to study the Wiki.

You can’t perform that action at this time.