31个版本 (4个稳定版)

1.0.3 2024年4月6日
1.0.1 2022年11月13日
1.0.0 2022年5月30日
0.10.0 2022年4月28日
0.5.1 2021年6月22日

#29 in 测试

Download history 30/week @ 2024-05-17 7/week @ 2024-05-24 1/week @ 2024-05-31 4/week @ 2024-06-07 15/week @ 2024-06-14 1/week @ 2024-06-21 4/week @ 2024-07-05 55/week @ 2024-07-26 3/week @ 2024-08-02

每月58次下载

MIT许可证

165KB
3.5K SLoC

Quick Test CLI

针对竞技编程压力测试的命令行界面(CLI)

📖 文档

Current Crates.io Version Quick Test License: MIT

演示

cmp gif

文档

目录

入门

安装

Linux、Windows和macOS的安装教程可以在这里的文档网站上找到

简介

Quick Test CLI是一个项目,旨在以简单快捷的方式对竞技编程比赛中的压力进行测试,只关注比赛本身。

目前,Quick Test CLI支持以下三种类型的测试:

quicktest cmp quicktest stress quicktest check
cmp gif stress gif check gif
  • quicktest cmp | qt cmp:通过将其与通常非常慢但100%确能提供正确解的暴力解法进行比较,来检查我们想要验证的算法的正确性。

    • 示例

      quicktest cmp --target-file=main.cpp --correct-file=correct.cpp --gen-file=gen.cpp
      # Or shorter:
      qt cmp -t main.cpp -c correct.cpp -g gen.cpp --tout 1000 --tc 1000
      
  • quicktest stress | qt stress:使用随机生成器为多个测试案例验证代码执行时间是否超过允许的范围。

    注意:在这种情况下,没有比它更慢的解决方案可以用来比较正确性。

    • 示例
      quicktest stress --target-file=main.cpp --gen-file=gen.cpp
      # Or shorter:
      qt stress -t main.cpp -g gen.cpp --tout 1000 --tc 1000
      
  • quicktest check | qt check:在某些问题中,多个答案都被接受,此时使用quicktest cmp命令将不会正确工作,在这种情况下,使用脚本检查器来验证算法的正确性。

    • 示例
      quicktest check --target-file=main.cpp --checker-file=correct.cpp --gen-file=gen.cpp
      # Or shorter:
      qt check -t main.cpp -c check.cpp -g gen.cpp --tout 1000 --tc 1000
      
  • quicktest output | qt output:运行所有匹配前缀的测试案例,并将响应保存到输出文件中

    • 示例
      quicktest output --target-file=main.cpp --prefix=testcase_ac
      # Or shorter:
      qt output -t main.cpp -p test_cases/testcase_ac --tout 1000
      

命令

注意:您可以使用长命令 quicktest 或别名 qt

  • quicktest cmp|qt cmp

    必需选项

    • -t=<value> | --target-file=<value>
    • -c=<value> | --correct-file=<value>
    • -g=<value> | --gen-file=<value>

    其他选项

    • --test-cases=<value> |--tc=<value>[默认1000]
    • --timeout=<value> | --tout=<value> [默认: 2000] 时间单位:ms
    • --memory-limit=<value> | --ml=<value> [默认: 1000000000 - 1GB] 时间单位:bytes
    • --prefix=<value> | -p=<value>--gen-file 冲突(一次只能使用一个)
    • --diff 显示预期文件和输出文件之间的差异

  • quicktest stress|qt stress

    必需选项

    • -t=<value> | --target-file=<value>
    • -g=<value> | --gen-file=<value>

    其他选项

    • --test-cases=<value> |--tc=<value>[默认1000]
    • --timeout=<value> | --tout=<value> [默认: 2000] 时间单位:ms
    • --memory-limit=<value> | --ml=<value> [默认: 1000000000 - 1GB] 时间单位:bytes
    • --prefix=<value> | -p=<value>--gen-file 冲突(一次只能使用一个)

  • quicktest check|qt check

    必需选项

    • -t=<value> | --target-file=<value>
    • -c=<value> | --checker-file=<value>
    • -g=<value> | --gen-file=<value>

    其他选项

    • --test-cases=<value> |--tc=<value>[默认1000]
    • --timeout=<value> | --tout=<value> [默认: 2000] 时间单位:ms
    • --memory-limit=<value> | --ml=<value> [默认: 1000000000 - 1GB] 时间单位:bytes
    • --prefix=<value> | -p=<value>--gen-file 冲突(一次只能使用一个)

  • cmpstresscheck 子命令的标志

    • --break-bad | --break 如果出现 WA、TLE 或 RTE 状态则中断
    • --run-ac 运行接受测试用例
    • --run-all 运行所有测试用例
    • --run-rte 运行运行时间错误测试用例
    • --run-tle 运行时间限制超出的测试用例
    • --run-wa 运行错误答案测试用例
    • --save-all 保存所有测试用例
    • --save-bad 仅保存具有 WA、TLE 或 RTE 状态的坏案例

  • quicktest 输出|qt 输出

    必需选项

    • -t=<value> | --target-file=<value>
    • -p=<value> | --prefix=<value>

    其他选项

    • --timeout=<value> | --tout=<value> [默认: 2000] 时间单位:ms
    • --memory-limit=<value> | --ml=<value> [默认: 1000000000 - 1GB] 时间单位:bytes
    • --break-bad | --break 如果出现 WA、TLE 或 RTE 状态则中断
    • --save-out 保存每个测试用例的目标文件输出

  • quicktest 设置|qt 设置

    子命令

    • config 允许更改 C++ 设置的子命令

      选项

      • --label=<value> 指定要更改的配置路径的标签
      • --value=<value> 将选定的标签更改为你想要的值

  • quicktest 示例|qt 示例

    标志

    • --check 显示检查子命令的示例
    • --cmp 显示比较子命令的示例
    • --stress 显示压力子命令的示例
    • --output 显示输出子命令的示例
    • --setup 显示设置子命令的示例

    注意:一次只能使用一个标志

如何贡献

如果您对为 Quick Test CLI 项目做出贡献感兴趣,请参阅 贡献指南

错误报告

您可以通过 此处 报告任何错误。

支持的语言

语言
C++
Java
Python
Rust 语言
Go 语言
GNU C
Kotlin

编译和执行命令

语言 编译器/解释器 执行命令
C++17 g++ -std=c++17 -Wall -DONLINE_JUDGE=1 -o .qt/main main.cpp ./.qt/main
Java javac-d.qt/.java java-cp.qt/
Python3 python3 main.py
Rust 语言 cp main.rs~/.quicktest/rust/src/main.rs&&cargo build--release--quiet--manifest-path~/.quicktest/rust/Cargo.toml&&cp~/.quicktest/rust/target/release/rust.qt/main ./.qt/main
Go 语言 cp main.go~/.quicktest/go_mod/main.go&&go build-buildmode=exe-o./.qt/main~/.quicktest/go_mod/main.go ./.qt/main
GNU C gcc -std=gnu11 -lmmain.c -o.qt/main ./.qt/main
Kotlin kotlinc main.kt-include-runtime-d.qt/main.jar java-jar.qt/main.jar

许可证

许可协议为以下之一


致谢

标志图像基于Freepik制作的Freepik作品,用于www.flaticon.com

文档基于cpbooster

安装脚本基于deno_install

依赖项

~15–30MB
~409K SLoC