如何在不导出所有符号的情况下运行测试

时间:2013-08-21 17:00:53

标签: package common-lisp symbols

我(至少)有一个我的主程序所在的包。我有另一个用于运行测试的包。我:在测试包的defpackage形式中使用主程序包,但只导入导出的符号。所以我无法测试所有函数,只测试我明确导出的函数(公共API)。如何解决这个问题?

1 个答案:

答案 0 :(得分:7)

您始终可以使用双冒号限定符来引用内部(未导出)符号:

(package-name::function-name)

您还可以使用import将符号导入测试包(无论是否已从主包导出)。例如:

(import 'package-name::function-name)
(fboundp 'function-name)  ;; => t

Here's import上的CLHS条目。

另外,如果您还没有阅读,我推荐来自Practical Common Lisp的Programming in the Large: Packages and Symbols章节。它并没有直接解决你的问题,但我提到它是因为我发现一般来说对包裹和符号进行重新分类非常有帮助。