BUAA 软件学院 2023 秋《面向对象程序设计》评测机使用指南
本学期 patpat 已更新,迭代三、四只能使用新的 patpat,迭代二新旧版本均可。
本学期使用的各个版本的 patpat 下载链接如下:
支持 Windows,Linux 和 MacOS,包括:
对于 Mac 与 Linux 用户,需要首先 chmod +x patpat,使评测机程序具有可执行权限。
请使用最新版本的 patpat,否则可能导致无法测评,或成绩无法被正确录入!🫣
Windows 下请使用 Terminal 打开 cmd 或 PowerShell,否则会乱码。
请严格按照如下的目录层级与命名准备好评测相关文件:
1 | / # 存放所有评测文件的根目录 |
在 1-22******-Name/src/ 目录下,必须有 Test.java 作为程序入口。其他 Java 文件可以与 Test.java 并列,但是推荐按照一定结构放在单独的 Java 包中。😉
Test.java 不能在任何包下!即不能有 package 声明。
patpat 与普通的程序运行方式相同,如果要在命令行中使用 patpat,需要将 patpat-windows-amd64.exe 重命名为 patpat.exe。
judge.yaml 与 testcase.yaml 的编写方式见本地测评指南。🤔
运行方式
在终端(如 Command Prompt,Bash 等)中运行如下命令:
1 | ./patpat stu -judge 1-22******-Name # 本地测试命令 |
这里的 1-22******-Name 需要与存放源文件的目录名名称对应,请修改为自己的相关信息。线上测试需要先注册。🥸
对于 Windows,命令中的 ./patpat 需要改为 .\patpat 或 .\patpat.exe,或者直接使用 patpat 或 patpat.exe。
评测结果
详细评测结果见生成的 $testcase$_result.md,报告会被统一输出到 report 目录下。
离线模式
仅在 stu 模式下有效,添加参数 -online=0。
历史迭代评测
迭代在截止之后将无法评测,如果同学们想再次测试,可以在对应迭代名前加 10 来评测历史迭代,更改文件名即可。
如,第一次迭代 1-学号-姓名 对应的历史评测为 101-学号-姓名。
历史评测仅用于辅助测试,不计入最终成绩。
该功能只是查询历史评测结果,并不进行评测。
查询助教评测结果前,需要注册账号 (sid 为您的学号),注册命令如下:
1 | ./patpat reg -sid your_sid -pwd your_password |
账号创建后,密码不支持修改。如需修改,请联系助教。
1 | ./patpat query -sid your_sid -pwd your_password |
学号及对应的密码正确后,即可显示截至目前的所有评测结果。
首先,确保自己的程序能够通过线上自评自测,然后再将 Java 源代码文件夹打包,压缩为 .zip 格式,上传至云平台。
压缩包内文件结构如下(和自评自测时相同):
1 | 1-22******-Name/ # 第几次作业-学号-姓名 |
压缩包内需要包括 1-22******-Name/ 文件夹哦。👻
请务必反复确认文件的命名,如有误将无法评测!🥴
judge.yaml的编写1 | # 请将本 judge.yaml 置于 test/ 目录下 |
在自评自测时,judge.yaml 中 tests 列表中的测试点名称,需要与 test 目录下的文件名一致。🧐
testcase.yaml 的编写testcase.yaml 由两部分组成,名称和数据。
任意名称即可。
1 | name: testcase1 |
测试数据中包含多个测试点,每个测试点为一个一级-,测试点中的输入输出分别对应一个二级 -。
根据输入输出行数,可将测试点分为以下几种。不会有无输入,有输出的测试点。
单行输入,无输出
1 | data: |
单行输入,单行输出
1 | data: |
单行输入,多行输出
1 | data: |
多行输入,无输出
1 | data: |
多行输入,单行输出
1 | data: |
多行输入,多行输出
1 | data: |
不建议使用带有多行输入与多行输出的测试点。😈
这里 data 部分的数据类型相当于 String[n][2]。第一级的 - 表示一个测试点,第二级的第一个 - 对应输入,第二个(如果有的话)对应输出。第二级的输入是必须的,可以无输出,即至少为 1 个,至多为 2 个。
1 | name: testcase |
对于部分测试点中包含 : 的情况,YAML 会默认识别为字典,此时只需要用 "" 将整个字符串包起来即可,或是写成多行输出的格式,如下。
1 | - Register shop success (shopid: S-1) # 错误识别 |