首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让rackunit显示堆栈跟踪?

如何让rackunit显示堆栈跟踪?
EN

Stack Overflow用户
提问于 2020-05-10 17:50:01
回答 1查看 69关注 0票数 2

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

代码语言:javascript
复制
(run-tests (test-suite "suite-name"
  (test-case "case name"
     ...
   ))

我在试着练习TDD。当断言失败时,我能够看到哪个断言失败了。但不幸的是,如果出现错误,rackunit只会向我显示遇到的错误和失败的测试用例名称。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-10 23:12:23

使用errortrace

作为示例,下面的程序

代码语言:javascript
复制
#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)

产生:

代码语言:javascript
复制
--------------------
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运行它,那么它会产生:

代码语言:javascript
复制
--------------------
suite-name > case name
application: not a procedure;
 expected a procedure that can be applied to arguments
  given: 1
  arguments...: [none]
  errortrace...:
   /Users/sorawee/racket/test.rkt:9:20: (1)
   /Applications/Racket v7.7/share/pkgs/rackunit-lib/rackunit/private/check.rkt:115:13: ((let-values (((...it/private/check.rkt:115:14) check-impl) ((temp3) (idY31 lifted/19 (....))) ((temp4) (quote (....)))) ((checked-procedure-check-and-extract struct:keyword-procedure ...it/private/check.rkt:115:14 keyword-procedure-extract (....) ....)...
   /Applications/Racket v7.7/share/pkgs/rackunit-lib/rackunit/private/test-case.rkt:58:2: (let-values (((...rivate/test-case.rkt:58:2) run-test-case5) ((temp1) (lambda () (void) (....))) ((temp2) (lifted/20 (quote ....)))) (if (variable-reference-constant? (#%variable-reference run-test-case5)) (run-test-case temp2 temp1) ((checked-procedure...
   /Users/sorawee/racket/test.rkt:11:0: (run-tests suite)

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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61710006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档