Compare commits

...

2 Commits

Author SHA1 Message Date
e5f9d2d828 Make run-tests exit 1 when there are failures 2026-03-04 22:08:34 +00:00
fb70a2585f Fix typo in test name 2026-03-04 21:31:22 +00:00
2 changed files with 19 additions and 13 deletions

View File

@@ -1,5 +1,5 @@
(define-module (e2e testing) (define-module (e2e testing)
#:export (assert define-test run-tests)) #:export (assert define-test run-tests run-tests-with-cleanup))
(use-modules (use-modules
(sxml simple) (sxml simple)
@@ -47,10 +47,8 @@
((error? result) `((error (@ (message ,(cddr result)))))) ((error? result) `((error (@ (message ,(cddr result))))))
(#t '())))) (#t '()))))
(define (junit-report results) (define (junit-report results fails errors)
(let ((count (length results)) (let ((count (length results)))
(fails (length (filter fail? results)))
(errors (length (filter error? results))))
`(testsuites `(testsuites
(testsuite (testsuite
(@ (name "wipforth e2e") (@ (name "wipforth e2e")
@@ -60,5 +58,14 @@
,@(map test-junit-report results))))) ,@(map test-junit-report results)))))
(define (run-tests) (define (run-tests)
(let ((results (map run-test (fluid-ref *tests*)))) (let* ((results (map run-test (fluid-ref *tests*)))
(sxml->xml (junit-report results)))) (fails (length (filter fail? results)))
(errors (length (filter error? results))))
(sxml->xml (junit-report results fails errors))
(exit (if (= (+ fails errors) 0) 0 1))))
(define-syntax-rule (run-tests-with-cleanup body ...)
(dynamic-wind
(lambda () #f)
run-tests
(lambda () body ...)))

View File

@@ -21,7 +21,7 @@
(navigate client "http://localhost:8080") (navigate client "http://localhost:8080")
(sleep 5) (sleep 5)
(define-test preload-loads-successfully (define-test prelude-loads-successfully
(let* ((display (get-display client)) (let* ((display (get-display client))
(first-line (first (lines display)))) (first-line (first (lines display))))
(assert (string-match "Loading prelude \\.+ done" first-line) (assert (string-match "Loading prelude \\.+ done" first-line)
@@ -40,8 +40,7 @@
(assert (string=? "Hello, world!" result-line) (assert (string=? "Hello, world!" result-line)
(format #f "Result line: ~s" result-line)))) (format #f "Result line: ~s" result-line))))
(run-tests) (run-tests-with-cleanup
(client-teardown client) (client-teardown client)
(close-firefox firefox) (close-firefox firefox)
(server-stop server) (server-stop server))