Make run-tests exit 1 when there are failures
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
(define-module (e2e testing)
|
||||
#:export (assert define-test run-tests))
|
||||
#:export (assert define-test run-tests run-tests-with-cleanup))
|
||||
|
||||
(use-modules
|
||||
(sxml simple)
|
||||
@@ -47,10 +47,8 @@
|
||||
((error? result) `((error (@ (message ,(cddr result))))))
|
||||
(#t '()))))
|
||||
|
||||
(define (junit-report results)
|
||||
(let ((count (length results))
|
||||
(fails (length (filter fail? results)))
|
||||
(errors (length (filter error? results))))
|
||||
(define (junit-report results fails errors)
|
||||
(let ((count (length results)))
|
||||
`(testsuites
|
||||
(testsuite
|
||||
(@ (name "wipforth e2e")
|
||||
@@ -60,5 +58,14 @@
|
||||
,@(map test-junit-report results)))))
|
||||
|
||||
(define (run-tests)
|
||||
(let ((results (map run-test (fluid-ref *tests*))))
|
||||
(sxml->xml (junit-report results))))
|
||||
(let* ((results (map run-test (fluid-ref *tests*)))
|
||||
(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 ...)))
|
||||
|
||||
@@ -40,8 +40,7 @@
|
||||
(assert (string=? "Hello, world!" result-line)
|
||||
(format #f "Result line: ~s" result-line))))
|
||||
|
||||
(run-tests)
|
||||
|
||||
(client-teardown client)
|
||||
(close-firefox firefox)
|
||||
(server-stop server)
|
||||
(run-tests-with-cleanup
|
||||
(client-teardown client)
|
||||
(close-firefox firefox)
|
||||
(server-stop server))
|
||||
|
||||
Reference in New Issue
Block a user