如何使Rackunit显示堆栈跟踪?

时间:2020-05-10 09:50:00

标签: racket rackunit

我在代码中使用了这样的rackunit

(run-tests (test-suite "suite-name"
  (test-case "case name"
     ...
   ))

我正在尝试练习TDD。当断言失败时,我可以看到哪个断言失败。但是不幸的是,如果发生错误,rackunit只会向我显示遇到的错误和失败的测试用例名称。

如果我正常执行代码,则会看到带有行号的堆栈跟踪。如何使rackunit显示此信息?

1 个答案:

答案 0 :(得分:2)

使用errortrace

例如,以下程序

inline

产生:

#lang racket/base

(require rackunit
         rackunit/text-ui)

(define suite
  (test-suite "suite-name"
    (test-case "case name"
      (check-equal? (1) 3))))

(run-tests suite)

使用-------------------- suite-name > case name ERROR application: not a procedure; expected a procedure that can be applied to arguments given: 1 arguments...: [none] -------------------- 0 success(es) 0 failure(s) 1 error(s) 1 test(s) run 1 运行时。

但是如果我们使用racket test.rkt运行它,它将产生:

racket -l errortrace -t test.rkt