diesen Code Gegeben:Lauftestmodul als Haupthaken
#lang racket/base
(module+ test
(require rackunit rackunit/text-ui)
(provide suite)
(define suite
(test-suite
"test tests"
(test-equal? "test string test"
"string"
"string")))
(run-tests suite))
;(require 'test)
;(suite)
Wenn die letzten beiden Zeilen kommentiert werden links und die Datei ausgeführt wird mit raco test test.rkt
, wird der Ausgang
raco test: (submod "test.rkt" test)
1 success(es) 0 failure(s) 0 error(s) 1 test(s) run
0
1 test passed
Welche erwartet wird.
Wie kann ich die Datei ihre Tests ausführen, wenn es nur als Skript ausgeführt wird, nicht von raco
?
Ich dachte, die zwei Zeilen am Ende kommentiert tun würde, was ich will: das Submodul importieren und dann die Funktion aufrufen,
(require 'test)
(suite)
sondern ich:
$ racket test.rkt
require: unknown module
module name: #<resolved-module-path:'test>
context...:
standard-module-name-resolver
Learn Racket in Y Minutes scheint sagen, dass 'test
als 'symbol
ist für Submodule, aber vielleicht nicht.
Von Python kommend, wo nichts vor irgendjemandem versteckt ist, enttäuscht mich dieser erste Absatz. Abgesehen davon bin ich auch an das Python-Idiom 'if __name__ ==" __main__ ": unittest.main()' gewöhnt, und deshalb möchte ich, dass die Tests ausgeführt werden, wenn ich den Code ausführe. Ich denke, ich werde mich verabschieden müssen. : c – cat