File tree Expand file tree Collapse file tree 6 files changed +63
-2
lines changed Expand file tree Collapse file tree 6 files changed +63
-2
lines changed Original file line number Diff line number Diff line change 25
25
cli : 1.11.1.1429
26
26
- name : Run tests
27
27
run : make test
28
+ - name : Run coverage tests
29
+ run : make test-coverage
28
30
- name : Run generative tests
29
31
run : make test-generative
30
32
- name : Run clj-kondo linter
Original file line number Diff line number Diff line change @@ -14,6 +14,10 @@ repl: compile-test-java
14
14
test : compile-test-java
15
15
clojure -M:dev:test:runner --focus :unit --reporter kaocha.report/documentation --no-capture-output
16
16
17
+ test-coverage : compile-test-java
18
+ clojure -M:dev:test:runner --focus :coverage --reporter kaocha.report/documentation --no-capture-output
19
+ jq ' .coverage["clara/coverage_ruleset.clj"]|join("_")' target/coverage/codecov.json | grep " _1___1____1_0_1__1__" || echo " Unexpected coverage output for clara.coverage-ruleset." exit 1
20
+
17
21
test-generative : compile-test-java
18
22
clojure -M:dev:test:runner --focus :generative --reporter kaocha.report/documentation --no-capture-output
19
23
Original file line number Diff line number Diff line change 24
24
:main-opts [" -m" " clj-kondo.main" ]}
25
25
26
26
:test {:extra-paths [" src/test/clojure" " target/test/classes" ]
27
- :extra-deps {lambdaisland/kaocha {:mvn/version " 1.80.1274" }
27
+ :extra-deps {lambdaisland/kaocha {:mvn/version " 1.80.1274" }
28
+ lambdaisland/kaocha-junit-xml {:mvn/version " 1.17.101" }
29
+ lambdaisland/kaocha-cloverage {:mvn/version " 1.1.89" }
28
30
org.clojure/test.check {:mvn/version " 1.1.1" }
29
31
pjstadig/humane-test-output {:mvn/version " 0.10.0" }}}
30
32
Original file line number Diff line number Diff line change
1
+ (ns clara.coverage-ruleset
2
+ (:require [clara.rules :refer [defrule defquery insert!]]))
3
+
4
+ (defrule simple-rule-with-rhs
5
+ [:weather [{:keys [temperature]}]
6
+ (= temperature ?temperature)]
7
+ =>
8
+ (if (< ?temperature 50 )
9
+ (insert! {:type :climate :label " Cold" })
10
+ (insert! {:type :climate :label " Warm" })))
11
+
12
+ (defquery climate-query
13
+ []
14
+ [?result <- :climate ])
Original file line number Diff line number Diff line change
1
+ (ns ^:coverage clara.test-coverage
2
+ (:require [clojure.test :refer [deftest testing is]]
3
+ [clara.rules :refer [mk-session insert fire-rules query]]
4
+ [clara.coverage-ruleset]))
5
+
6
+ (deftest test-coverage
7
+ (testing " run the rules"
8
+ (let [result (-> (mk-session 'clara.coverage-ruleset :fact-type-fn :type )
9
+ (insert {:type :weather
10
+ :temperature 75 })
11
+ (fire-rules )
12
+ (query clara.coverage-ruleset/climate-query))]
13
+ (is (= result [{:?result {:type :climate
14
+ :label " Warm" }}])))))
Original file line number Diff line number Diff line change 3
3
:plugins [:kaocha.plugin/profiling
4
4
:kaocha.plugin/gc-profiling
5
5
:kaocha.plugin/print-invocations
6
+ :kaocha.plugin/junit-xml
7
+ :kaocha.plugin/cloverage
6
8
:kaocha.plugin/hooks
7
9
:preloads ]
10
+ :kaocha.plugin.junit-xml/target-file " target/junit.xml"
11
+ :kaocha.plugin.junit-xml/add-location-metadata? true
12
+ :cloverage/opts {:ns-exclude-regex []
13
+ :text? false
14
+ :lcov? false
15
+ :high-watermark 80
16
+ :fail-threshold 0
17
+ :output " target/coverage"
18
+ :low-watermark 50
19
+ :src-ns-path [" src/main/clojure"
20
+ " src/test/clojure" ]
21
+ :ns-regex [" clara.coverage-ruleset" ]
22
+ :summary? true
23
+ :coveralls? false
24
+ :emma-xml? false
25
+ :html? true
26
+ :nop? false
27
+ :codecov? true }
8
28
:kaocha.hooks/pre-report [clara.test-setup/defuse-zero-assertions]
9
29
:kaocha.plugin.preloads/ns-names [clara.test-setup]
10
30
:tests [{:id :unit
11
31
:kaocha/source-paths [" src/main/clojure" ]
12
32
:kaocha/test-paths [" src/test/clojure" ]
13
33
:ns-patterns [" .*" ]
14
- :skip-meta [:generative ]}
34
+ :skip-meta [:generative :coverage ]}
35
+ {:id :coverage
36
+ :kaocha/source-paths [" src/main/clojure" ]
37
+ :kaocha/test-paths [" src/test/clojure" ]
38
+ :ns-patterns [" .*" ]
39
+ :focus-meta [:coverage ]}
15
40
{:id :generative
16
41
:kaocha/source-paths [" src/main/clojure" ]
17
42
:kaocha/test-paths [" src/test/clojure" ]
You can’t perform that action at this time.
0 commit comments