ITADN
sourcegrade/jagr · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈
jagr logo

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。