CL-Coveralls: Common Lisp测试覆盖率工具

需积分: 10 0 下载量 38 浏览量 更新于2024-11-11 收藏 12KB ZIP 举报
资源摘要信息:"Common Lisp软件库CL-Coveralls" CL-Coveralls是一个专门为Common Lisp编程语言设计的库,其主要功能是将测试覆盖率的报告发布到Coveralls.io服务上。Coveralls.io是一个针对持续集成(CI)环境的代码覆盖率跟踪和统计平台,它可以帮助开发者了解代码中哪些部分经过了测试,哪些部分尚未被测试。 CL-Coveralls作为Common Lisp的辅助工具,支持SBCL(Steel Bank Common Lisp)以及Clozure CL(CCL)版本1.4到1.9的实现。需要注意的是,CCL 1.10版本由于已损坏,目前不被CL-Coveralls支持。此外,它还支持多种持续集成服务,尽管在描述中没有明确列出这些CI服务的具体名称,但可以推测,它们是一些主流的、支持Common Lisp的CI平台。 在使用CL-Coveralls时,有几个重要的局限性需要了解。首先,尽管CL-Coveralls可以跟踪代码的覆盖率,但它无法报告每行代码的输入次数,这是因为它依赖于Common Lisp中现有的测试工具,而这些工具通常不提供每行输入次数的信息。因此,CL-Coveralls将所有行的输入次数统一报告为1。 在用法方面,CL-Coveralls支持一个环境变量$COVERALLS,用于决定是否记录测试覆盖率。在运行测试之前,开发者需要设置这个环境变量。如果环境变量$COVERALLS被设置为true,那么测试覆盖率的报告将被激活,并在测试完成后上传到Coveralls.io服务。示例用法是在SBCL环境运行测试脚本时,通过命令行设置环境变量并加载测试脚本: ```bash $ COVERALLS=true sbcl --load test-script.lisp --eval '(sb-ext:exit)' ``` 在测试脚本内部,需要将测试代码包裹在CL-Coveralls提供的特定包裹函数中,比如`coveralls:w`,这样CL-Coveralls才能正确地捕获覆盖率数据并将其发送到Coveralls.io。 CL-Coveralls目前仍处于ALPHA阶段,这意味着它的API可能会发生变化,并且可能会有尚未修复的bug。在使用这样一个不稳定版本的库时,用户应该保持警惕,及时关注可能出现的更新和已知问题。 关于“压缩包子文件的文件名称列表”,这里提到的“cl-coveralls-master”似乎指向了一个包含CL-Coveralls库代码的压缩包文件。通常这类文件可能会被放置在项目的Git仓库的master分支上,用于归档整个库的代码历史。开发者在下载并解压缩该文件后,可以获取到CL-Coveralls库的源代码,进而可以在本地环境中进行安装和使用。 总结来说,CL-Coveralls作为一个Common Lisp的库,为Common Lisp的开发者提供了将测试覆盖率数据上传至Coveralls.io平台的能力。它利用环境变量控制测试覆盖率记录的开关,并依赖于持续集成服务来触发覆盖率报告的生成。需要注意的是,它目前只支持特定版本的SBCL和CCL实现,并且在报告覆盖率时存在一些限制,比如无法区分每行代码的输入次数。