Skip to content

Commit b8d8d0e

Browse files
authored
dev: include test context when running tests (#630)
* dev: include test context when running tests This should help especially with test-doc, but seems like a good thing to report in general. Closes #628 * address lint error, thanks clj-kondo! * test: with context reported, printlns can go * Windows does not like the bullet char Switch to period char.
1 parent 399436c commit b8d8d0e

File tree

4 files changed

+20
-13
lines changed

4 files changed

+20
-13
lines changed

test/etaoin/api_test.clj

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,7 @@
9292
(e/wait-visible driver {:id :document-end})
9393
(binding [*driver* driver
9494
test-report/*context* (name type)]
95-
(testing (name type)
96-
(f)))))))
95+
(f))))))
9796

9897
(use-fixtures
9998
:each

test/etaoin/api_with_driver_test.clj

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,6 @@
120120
(let [test-page (api-test/test-server-url "test.html")]
121121
(when (testing-driver? :chrome)
122122
(testing "chrome"
123-
(println "testing chrome")
124123
;; with opts
125124
(is (= my-agent
126125
(e/with-driver :chrome {:user-agent my-agent} driver
@@ -186,7 +185,6 @@
186185

187186
(when (testing-driver? :firefox)
188187
(testing "firefox"
189-
(println "testing firefox")
190188
;; with opts
191189
(is (= my-agent
192190
(e/with-driver :firefox {:user-agent my-agent} driver
@@ -244,7 +242,6 @@
244242

245243
(when (testing-driver? :edge)
246244
(testing "edge"
247-
(println "testing edge")
248245
;; with opts
249246
(is (= my-agent
250247
(e/with-driver :edge {:user-agent my-agent} driver
@@ -302,7 +299,6 @@
302299

303300
(when (testing-driver? :safari)
304301
(testing "safari"
305-
(println "testing safari")
306302
;; with opts
307303
;; safari driver does supports neither user agent nor headless
308304
;; not sure what other safari option is reflected in session... port?
@@ -344,23 +340,20 @@
344340
(let [test-page (api-test/test-server-url "test.html")]
345341
(when (testing-driver? :chrome)
346342
(testing "chrome"
347-
(println "testing chrome")
348343
(util/with-tmp-file "chromedriver" ".log" path
349344
;; chromedriver logs to stderr
350345
(e/with-chrome {:driver-log-level "DEBUG" :log-stderr path} driver
351346
(e/go driver test-page)
352347
(is (re-find #"\[DEBUG\]:" (slurp path)))))))
353348
(when (testing-driver? :edge)
354349
(testing "edge"
355-
(println "testing edge")
356350
(util/with-tmp-file "edgedriver" ".log" path
357351
;; edgedriver logs to stderr
358352
(e/with-edge {:driver-log-level "DEBUG" :log-stderr path} driver
359353
(e/go driver test-page)
360354
(is (re-find #"\[DEBUG\]:" (slurp path)))))))
361355
(when (testing-driver? :firefox)
362356
(testing "firefox"
363-
(println "testing firefox")
364357
(util/with-tmp-file "firefoxdriver" ".log" path
365358
;; geckodriver logs to stdout
366359
(e/with-firefox {:driver-log-level "debug" :log-stdout path} driver

test/etaoin/ide_test.clj

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
(:require
33
[clojure.edn :as edn]
44
[clojure.java.io :as io]
5-
[clojure.test :refer [deftest testing use-fixtures]]
5+
[clojure.test :refer [deftest use-fixtures]]
66
[etaoin.api :as e]
77
[etaoin.ide.flow :as ide]
88
[etaoin.test-report :as test-report]))
@@ -37,8 +37,7 @@
3737
*base-url* base-url
3838
*test-file-path* test-file-path
3939
test-report/*context* (name type)]
40-
(testing (name type)
41-
(f)))))))
40+
(f))))))
4241

4342
(use-fixtures
4443
:each

test/etaoin/test_report.clj

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,19 @@
11
(ns etaoin.test-report
2-
(:require [clojure.test]))
2+
(:require [clojure.test :as t]))
33

44
(def ^:dynamic *context* nil)
55

6+
(defmacro testing-with-report
7+
"Replacement for clojure.testing macro that hooks into reporting"
8+
[string & body]
9+
`(let [context# ~string]
10+
(binding [t/*testing-contexts* (conj t/*testing-contexts* context#)]
11+
(t/do-report {:type :begin-testing :testing-contexts t/*testing-contexts*})
12+
~@body)))
13+
14+
;; Replace the clojure.test/testing macro with our custom one
15+
(alter-var-root #'t/testing (constantly #'testing-with-report))
16+
617
(def platform
718
(if (System/getProperty "babashka.version") "bb" "jvm"))
819

@@ -11,3 +22,8 @@
1122
(if *context*
1223
(println (format "=== %s [%s][%s]" test-name platform *context*))
1324
(println (format "=== %s [%s]" test-name platform)))))
25+
26+
(defmethod clojure.test/report :begin-testing [{:keys [testing-contexts]}]
27+
(println (format "...%s %s"
28+
(apply str (repeat (count testing-contexts) "."))
29+
(first testing-contexts))))

0 commit comments

Comments
 (0)