sourcegrade/jagr · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈
Java AutoGrader,使用 Kotlin 实现
用于对 Java 程序进行评分的工具。
它旨在接受使用 jagr-gradle 插件创建的评分器和提交内容。
设置
本项目的编译、源码和 javadoc jar 包托管在 sonatype。
发布版本可从 mavenCentral() 获取,快照版本可从 maven 仓库 maven("https://s01.oss.sonatype.org/content/repositories/snapshots/") 获取。
按照此指南]设置您的 gradle buildscript。
用法
创建一个基本的 Criterion:
public static final Criterion H1_1 = Criterion.builder()
.shortDescription("Some short description")
.maxPoints(3) // default maxPoints is 1
.minPoints(-1) // default minPoints is 0
.grader(Grader.testAwareBuilder()
.requirePass(JUnitTestRef.ofMethod(() -> Tests.class.getMethod("testPositiveInts")))
.requirePass(JUnitTestRef.ofMethod(() -> Tests.class.getMethod("testNegativeInts")))
.pointsPassedMax() // award maximum points if ALL tests passed
.pointsFailedMin() // award minimum points if ANY test failed
.build())
.build();
确保您的 JUnit 测试类按以下方式添加注解,否则它们将不会运行:
@TestForSubmission
public class Test {
A Criterion 可以按如下方式嵌套:
public static final Criterion H1_1 = Criterion.builder()./*hidden*/.build();
public static final Criterion H1_2 = Criterion.builder()./*hidden*/.build();
public static final Criterion H1 = Criterion.builder()
.shortDescription("I have two child criteria!")
.addChildCriteria(H1_1, H1_2) // maxPoints, minPoints and grading is inferred from child criteria
.build();
最后,创建一个 Rubric 并实现 RubricProvider:
public class H03_RubricProvider implements RubricProvider {
public static final Criterion H1_1 = Criterion.builder()./*hidden*/.build();
public static final Criterion H1_2 = Criterion.builder()./*hidden*/.build();
public static final Criterion H1 = Criterion.builder()./*hidden*/.build();
public static final Rubric RUBRIC = Rubric.builder()
.title("My example rubric")
.addChildCriteria(H1)
.build();
@Override
public Rubric getRubric() {
return RUBRIC;
}
}
运行 Jagr
要运行 Jagr,请从 releases 下载所需的 Jagr 编译版本,并将其放置在一个(最好是空的)您选择的目录中。
然后在您选择的终端中运行以下命令(或编写一个可执行的批处理/bash 脚本):
java -jar Jagr-VERSION.jar
或者,您可以通过 Gradle runShadow 任务在 IDE 中运行 Jagr(标准的 run 任务不起作用)。
使用的工作目录是 build/run。
以下目录应已创建:
./graders // input folder for grader jars (tests and rubric providers)
./libs // for libraries that are required on each submission's classpath
./logs // saved log files
./rubrics // the output folder for graded rubrics
./submissions // input folder for submissions
./submissions-export // output folder for submissions
将您的评分器 jar 包(测试和评分标准提供者)放置在 ./graders,将您要测试的提交放置在 ./submissions,然后重新运行 Jagr。