tkutcher / jgrade Goto Github PK
View Code? Open in Web Editor NEWA library for grading Java assignments
License: MIT License
A library for grading Java assignments
License: MIT License
Hi Tim,
I created a fork with an example that works with the latest version of Gradescope and contains directions. See especially https://github.com/espertus/jgrade/tree/dev/examples/gradescope
I am planning (not certain) to use Gradescope with JGrade this semester.
Thanks for making your repo available.
Ellen
This happens because run.sh uses "jgrade-1.0.0-all.jar", the name of the file though is "jgrade-1.0-all.jar".
Either change the filename or the code inside run.sh (best update to "jgrade-1.1-all.jar")
Nice and helpful project!
Thank you very much for this package.
It seems that there's a tiny issue with packages name. It seems like the package in jar is called com.github.tkutche1.jgrade.gradescope
, but the current examples are importing com.github.tkutcher.jgrade.gradescope
.
Is your feature request related to a problem? Please describe.
Currently, if a test throws an exception, but there is no line number or stack trace. It would really help our students debug if the default output was more verbose. If you could even point me to where this behavior is happening, I could make the necessary changes myself.
Describe the solution you'd like
The default string conversion of an error message should be a full stack trace, rather than simply the message.
Describe alternatives you've considered
We could modify our own tests to catch all exceptions, print their stack traces as a string, and then throw them back up, but that seems hacky.
Additional context
Here's some example output. You can see there's an out of bound exception, but with no clear way to find the source:
{"tests": [
{
"output": "TEST FAILED.\nRange [22, 22 + 100) out of bounds for length 100\nReading 0, 15232128\nByteBuffer get 22, 100, 128\n",
"score": 0,
"number": "4",
"visibility": "visible",
"max_score": 5,
"name": "TestRecoveryPerformance2"
},
Instead of passing a string as the class name, have a method that takes the Class itself. Then the main method just loads the class and passes it to that method. This way the user can call that method from code passing in the class directly.
Right now, to override the isFileToCheck()
method the client would have to subclass the entire thing. An alternative would be to make this method take some interface type that does the computation. Not sure if worth the effort.
Also want to make it so that just takes a list of specific files rather than a directory which ties in to this.
Right now, if the process throws an exception, the test doesn't know unless you inspect the stderr.
Is your feature request related to a problem? Please describe.
If you want to grade deductively (from a max score), would need some tricky hacking to do so.
Describe the solution you'd like
Strategy design pattern on top of a grader to set. Current grading strategy would be the default one.
Can leave as edu.jhu.cs or switch to something like com.github.tkuche1, org.jgrade, etc...
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.