Go to file
Sehnsucht 7c3232302c refactor: .devops/rustlings.yml 2023-03-31 21:55:19 +08:00
.devops refactor: .devops/rustlings.yml 2023-03-31 21:55:19 +08:00
.github/workflows 添加测试 2023-03-31 21:43:38 +08:00
dist 添加测试 2023-03-31 21:43:38 +08:00
script 添加测试 2023-03-31 21:43:38 +08:00
src 添加测试 2023-03-31 21:43:38 +08:00
.gitignore 添加测试 2023-03-31 21:43:38 +08:00
.nvmrc 添加测试 2023-03-31 21:43:38 +08:00
README.md 添加测试 2023-03-31 21:43:38 +08:00
action.yml 添加测试 2023-03-31 21:43:38 +08:00
jest.config.js 添加测试 2023-03-31 21:43:38 +08:00
jest.config.js:Zone.Identifier 添加测试 2023-03-31 21:43:38 +08:00
package-lock.json 添加测试 2023-03-31 21:43:38 +08:00
package.json 添加测试 2023-03-31 21:43:38 +08:00
tsconfig.json 添加测试 2023-03-31 21:43:38 +08:00

README.md

自动评分系统

使用方法

需要在github仓库中建立.github/classroom文件夹,在此文件夹中创建以.js为结尾的js文件并提供judge接口样例如下 目前是基于已有输出来进行判断

let points = {
    test1: [0, 2],
    test2: [0, 2],
    test3: [0, 2]
}

function judge(outputFile) {
    if(outputFile.indexOf('test file success')>=0) {
        points.test1[0] += points.test1[1];
        points.test3[0] += points.test3[1]/2;
    }
    return points;
}

module.exports.judge = judge;

points的key为单项测试名称后面的数组第一个数为得到的分数第二个数为当前这个测试的分数。

eg: 可以存在多个js文件来进行多个测试。

需要在autograding里设置信息

{
    "outputFile": "qemu_output.txt", // 执行结果输出文件, 必选
    "externalFile": "handleResult.js"   // 外置脚本,在成绩处理完毕时可做操作,可选,如果没有可删除此项
}

handleResult.js 文件

async function run({points, availablePoints}, { log, github, axios }) {
    // let github = require("@actions/github")
    // let request = require("request");
    // console.log(request);
    // console.log(github);
    // log("github actor: ", github.actor)
    log(github.actor);
    log(axios.get);
    
    const get = (url,params)=>{
        params = params || {};
        return new Promise((resolve,reject)=>{
            // axiso 自带 get 和 post 方法
            axios.get(url,{
                params,
            }).then(res=>{
                if(res.data.status===0){
                    resolve(res.data);
                }else{
                    alert(res.data.msg)
                }
            }).catch(error=>{
                log('网络异常');
            })
        })
    }
    let data = await get("url");
    console.log(data);
}

module.exports.run = run;