如何在SBCL中运行测试文件

时间:2015-06-08 12:01:38

标签: testing common-lisp sbcl

我正在尝试通过执行命令sbcl --load file.lisp在SBCL中运行测试文件。但是,当我执行命令时,文件已加载,但我看不到我的程序输出。

顺便提一下,这是一个测试文件的例子:

(locally
    (declare #+sbcl(sb-ext:muffle-conditions style-warning))
  (handler-bind
      (#+sbcl(style-warning #'muffle-warning))
    (load "load.lisp")
 ))
(interval 5)
(interval 20)
(interval 500)

load.lisp文件,加载我的程序的源代码,其中包含几个函数的定义,包括interval函数。

我已经尝试过sbcl中的其他选项,例如run sbcl --script file.lisp,但输出是相同的。

任何人都可以帮我解决这个问题吗?提前谢谢。

**打印对象方法**

 (defmethod print-object ((tensor tensor) stream)
   "Implementation of the generic method print-object for the tensor data structure.
   If the tensor is a vector, prints its elements separated by a whitespace.
   If the tensor is not one of the previous cases, then for each sub-tensor of the
   first dimension, prints the sub-tensor separated from the next sub-tensor by a
   number of empty lines that is equal to the number of dimensions minus one."
  (labels ((rec (arg last-iteration)
              (cond ((null arg) nil)
                    ((atom (car arg))
                        (format stream
                                (if (null (cdr arg)) "~A" "~A ")
                                (car arg))
                        (rec (cdr arg) nil))
                    ((and (listp (car arg)) (null (cdr arg)))
                        (rec (car arg) last-iteration)
                        (unless last-iteration
                          (format stream "~%")))
                    (t
                        (rec (car arg) nil)
                        (format stream "~%")
                        (rec (cdr arg) last-iteration)))))
      (rec (tensor-content tensor) t)))

1 个答案:

答案 0 :(得分:2)

加载文件时,不会自动打印表单的返回值。

许多人中的一个选择:

sbcl --script file.lisp

可与{{1}}一起使用。