Как увидеть количество тестов и утверждений - PullRequest
0 голосов
/ 17 сентября 2018

Я пишу юнит-тесты с rackunit , например:

(module+ test
  . . .
  (test-case ":edge"
    (let ([g (make-graph '(:edge ((:node letter a) out)
                                  ((:node letter b) in)))])
      (check-equal? (all-edges g) (set (set '(a out) '(b in))))))
  (test-case ":edge betw refs"
    (let ([g (make-graph 'a 'b '(:edge (a out) (b in)))])
      (check-equal? (all-edges g) (set (set '(a out) '(b in))))))
  . . .
  )

Когда я запускаю исходный файл в DrRacket и все тесты проходят, он ничего не печатает.Он печатает только что-то, если есть ошибка.

Когда я запускаю raco test <source-file>, он печатает: пройдено 49 тестов, но не количество подтверждений.

Как я могу получить DrRacket и raco test чтобы напечатать и количество тестовых случаев, и количество утверждений?

Я бы хотел всегда видеть как количество тестовых случаев, так и количество утверждений, потому что это хорошее, быстрое подтверждение того,Тест или утверждение, которое я только что добавил, действительно запущено: число увеличивается с предыдущего запуска.

1 Ответ

0 голосов
/ 22 сентября 2018

Оказывается, слово «тест» здесь немного перегружено.Чтобы увидеть это, попробуйте выполнить следующий код с raco test:

#lang racket

(require rackunit)

(define (f x) x)

(check-equal? (f 3) 3)
(check-equal? (f 3) 4)

Обратите внимание, что в этом коде нет использования «test-case».Однако запуск его в командной строке приводит к выводу:

raco test: "/tmp/gg.rkt"
--------------------
FAILURE
name:       check-equal?
location:   gg.rkt:8:0
actual:     3
expected:   4
--------------------
1/2 test failures

То есть при отсутствии форм test-case и test-suite каждое использование check-equal? считаетсятестовое задание.В самом деле, я думаю, что я бы сказал, что это упрощенное использование является более распространенным, и я должен отметить, что с этими вариантами использования можно связать check-equal?.

. Это не дает прямого ответа на ваш вопрос., но я думаю, что это объясняет, почему функция, которую вы ищете, в настоящее время не реализована (AFAICT).Если вы хотите что-то подобное, я думаю, что вам лучше всего реализовать это самостоятельно.Для более авторитетного ответа я бы поставил этот вопрос в списке рассылки racket .

...