gpt4 book ai didi

unit-testing - 如何在 Squeak 中自动化单元测试

转载 作者:行者123 更新时间:2023-12-04 06:59:40 25 4
gpt4 key购买 nike

我正在检查学生提交的 Squeak 家庭作业。我已经用一堆测试编写了一个 SUnit 测试用例,现在我想在所有提交上运行这些测试。

我想以某种方式自动化——无论是从 Squeak 内部还是使用 shell 脚本——加载学生提交的过程,在其上运行测试用例,并以某种格式保存结果。

我遇到了两个主要问题:

  • 我不知道如何从 shell 与 Squeak 交互 - 例如如何加载一些图像,然后在那里运行一组特定命令?我在网上寻找示例,但甚至无法加载图像。
  • 我试图将所有内容都保留在 Squeak 中,但结果证明加载包含现有类的源文件不仅会覆盖现有类(这没关系),而且还会使以前对这些类的所有引用都无效,使我无法重新运行测试。

  • 更多信息:所有学生都提交了 源文件 (不是图像文件),其中包含一个或多个类,所有提交至少包含一个具有特定名称的类(例如“SubmissionClass”)。

    最佳答案

    您可能想查看 Yanni Chiu 最初发布在 Pharo 邮件列表中以及我扩展并发布在 GitHub 上的构建脚本 http://github.com/renggli/builder .

    该代码可能为您的案例提供了太多功能,但它提供了您的任务中也需要的所有必要步骤:

  • http://github.com/renggli/builder/blob/master/build.sh (第 111 行)展示了如何从 shell 启动 Pharo(或 Squeak)VM。
  • 变量 $OUTPUT_SCRIPT包含加载代码和运行测试的脚本的完整路径。这是 http://github.com/renggli/builder/tree/master/scripts/ 中一个或多个脚本的串联(第 105-108 行) .
  • 例如,testrunner.st加载一个测试运行器,然后由 *-tests.st 使用脚本来运行实际测试并生成报告。
  • 确保脚本的最后一行退出图像,例如通过添加 SmalltalkImage current snapshot: false andQuit: true .
  • 详情见http://github.com/renggli/builder/blob/master/README .
  • 关于unit-testing - 如何在 Squeak 中自动化单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2079057/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com