Make run-tests exit 1 when there are failures
This commit is contained in:
@@ -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 ...)))
|
||||||
|
|||||||
@@ -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)
|
|
||||||
|
|||||||
Reference in New Issue
Block a user